分词器keras.preprocessing.text.Tokenizer的使用

下面例子的文本输入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}

你可能感兴趣的:(自然语言处理相关)