自然语言处理学习复习1
2018-12-17 本文已影响0人
阿门aaa
jieba.cut 以及 jieba.cut_for_search
相同点:1 返回值都是迭代值。2.接受参数都有(1)需要分词的字符串(2)是否使用 HMM 模型
不同点:jieba.cut 有参数cut_all 参数用来控制是否采用全模式
什么是全模式?
seg_list = jieba.cut("我在学习自然语言处理", cut_all=True)
Full Mode: 我/ 在/ 学习/ 自然/ 自然语言/ 语言/ 处理——结巴模式。。。
jieba.lcut以及jieba.lcut_for_search
问题: HMM模式? 没看
同上,直接返回 list的结果
添加用户自定义词典
jieba.load_userdict ()
直接加载用户字典
suggest_freq(segment, tune=True)
少量添加
print('/'.join(jieba.cut('如果放到旧字典中将出错。', HMM=False)))
如果/放到/旧/字典/中将/出错/。
jieba.suggest_freq(('中', '将'), True)
print('/'.join(jieba.cut('如果放到旧字典中将出错。', HMM=False)))
如果/放到/旧/字典/中/将/出错/。
add_word(word, freq=None, tag=None) 和 del_word(word)
方式相同?
关键字提取
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence 为待提取的文本
topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
withWeight 为是否一并返回关键词权重值,默认值为 False
allowPOS 仅包括指定词性的词,默认值为空,即不筛选
另一种方式:
jieba.analyse.textrank(sentence, topK=20,
withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
直接使用,接口相同,注意默认过滤词性。
词性标注 (?不知用途)
import jieba.posseg as pseg
words = pseg.cut("我爱自然语言处理")
for word, flag in words:
print('%s %s' % (word, flag))
我 r
爱 v
自然语言 l
处理 v
多进程
jieba.enable_parallel()
Tokenize:
返回迭代的,词语在原文的起止位置
result = jieba.tokenize(u'自然语言处理非常有用')
for i in result:
print(i)
('自然语言', 0, 4)
('处理', 4, 6)
('非常', 6, 8)
('有用', 8, 10)
ChineseAnalyzer for Whoosh 搜索引擎
from jieba.analyse import ChineseAnalyzer
先略,找个好点的范例再补充。