自然语言处理学习复习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

先略,找个好点的范例再补充。

上一篇下一篇

猜你喜欢

热点阅读