keras.preprocessing.text.Tokenizer.fit_on_texts(texts)

Posted on 2023-05-08 10:44  Frank_Jin  阅读(290)  评论(0编辑  收藏  举报

1.fit_on_texts()的作用

fit_on_texts的作用就是根据输入的文本列表生成一个大词典,保存在t里面,每个词有唯一一个不重复的索引。如果有新的语句,可直接通过t来转成对应的词索引列表。

2.用法

fit_on_texts(text) 中的text应该输入是一个列表,每个元素是切分过后的词列表或者词文本

不能把一整段的字符串输入进去,否则分词器会将整个字符串视为一个大列表,而每一个词都是其中的一个元素。

错误案例:

1 text='作者 长篇大论 借用 详细 报告 数据处理 工作 计算结果 支持 其新'
2 t.fit_on_texts(text)
3 print(t.word_counts)
4 #得到
5 OrderedDict([('', 2), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1), ('', 1)])

正确案例:

 1 text_list=['作者 长篇大论 借用 详细 报告 数据处理 工作 计算结果 支持 其新',
 2            '总体 应该 二 星级宾馆 定 时间 比较 晚 这家 酒店 入住 时问 前台 黄山 城市 信息 说 知道 一个 入住 办理 二十几分钟 几个 房间 设施 陈旧 住 舒服']
 3 tlist =Tokenizer()
 4 tlist.fit_on_texts(text_list)
 5 print(tlist.word_counts)
 6 print(tlist.word_docs)
 7 print(tlist.word_index)
 8 #得到
 9 OrderedDict([('作者', 1), ('长篇大论', 1), ('借用', 1), ('详细', 1), ('报告', 1), ('数据处理', 1), ('工作', 1), ('计算结果', 1), ('支持', 1), ('其新', 1), ('总体', 1), ('应该', 1), ('', 1), ('星级宾馆', 1), ('', 1), ('时间', 1), ('比较', 1), ('', 1), ('这家', 1), ('酒店', 1), ('入住', 2), ('时问', 1), ('前台', 1), ('黄山', 1), ('城市', 1), ('信息', 1), ('', 1), ('知道', 1), ('一个', 1), ('办理', 1), ('二十几分钟', 1), ('几个', 1), ('房间', 1), ('设施', 1), ('陈旧', 1), ('', 1), ('舒服', 1)])
10 defaultdict(<class 'int'>, {'长篇大论': 1, '报告': 1, '详细': 1, '作者': 1, '工作': 1, '支持': 1, '其新': 1, '计算结果': 1, '借用': 1, '数据处理': 1, '一个': 1, '前台': 1, '': 1, '办理': 1, '信息': 1, '二十几分钟': 1, '舒服': 1, '': 1, '知道': 1, '黄山': 1, '': 1, '入住': 1, '房间': 1, '这家': 1, '': 1, '时问': 1, '时间': 1, '': 1, '设施': 1, '几个': 1, '应该': 1, '城市': 1, '酒店': 1, '比较': 1, '星级宾馆': 1, '陈旧': 1, '总体': 1})
11 {'入住': 1, '作者': 2, '长篇大论': 3, '借用': 4, '详细': 5, '报告': 6, '数据处理': 7, '工作': 8, '计算结果': 9, '支持': 10, '其新': 11, '总体': 12, '应该': 13, '': 14, '星级宾馆': 15, '': 16, '时间': 17, '比较': 18, '': 19, '这家': 20, '酒店': 21, '时问': 22, '前台': 23, '黄山': 24, '城市': 25, '信息': 26, '': 27, '知道': 28, '一个': 29, '办理': 30, '二十几分钟': 31, '几个': 32, '房间': 33, '设施': 34, '陈旧': 35, '': 36, '舒服': 37}