下面例子的文本输入texts可以是一个list类型,也可以是一个series类型(所以可以也可以用dataframe的某一列),
import tensorflow as tf
texts = ["你好 我好 你好 你好 你好 我们 大家 都 好 吗 吗 吗 吗 吗", "分词器 训练 文档 训练 文档 文档 你好 我好"]
tokenizer = tf.contrib.keras.preprocessing.text.Tokenizer(split=" ")
tokenizer.fit_on_texts(texts)
fre = tokenizer.word_counts # 统计词频
print("type(fre):\n",type(fre))
print("fre:\n",fre)
# 查看每个词的词频
for i in fre.items():
print(i[0], " : ", i[1])
# 对词频进行排序
new_fre = sorted(fre.items(), key = lambda i:i[1], reverse = True)
print("new_fre:\n",new_fre)
# # 根据词频进行了升序的排序(注意,词频越大,value越小,这个value不是词频,而是按顺序排列的数字)
order = tokenizer.word_index
print("type(order):\n",type(order))
print("order:\n",order)
type(fre):
fre:
OrderedDict([('你好', 5), ('我好', 2), ('我们', 1), ('大家', 1), ('都', 1), ('好', 1), ('吗', 5), ('分词器', 1), ('训练', 2), ('文档', 3)])
你好 : 5
我好 : 2
我们 : 1
大家 : 1
都 : 1
好 : 1
吗 : 5
分词器 : 1
训练 : 2
文档 : 3
new_fre:
[('你好', 5), ('吗', 5), ('文档', 3), ('我好', 2), ('训练', 2), ('我们', 1), ('大家', 1), ('都', 1), ('好', 1), ('分词器', 1)]
type(order):
order:
{'你好': 1, '吗': 2, '文档': 3, '我好': 4, '训练': 5, '我们': 6, '大家': 7, '都': 8, '好': 9, '分词器': 10}