开始学习NLP的第一个模块jieba:
https://www.jianshu.com/p/cca648b4c1a3
- 1中文分词
import nltk
>>> setence = 'hello, world!'
>>> token = nltk.word_tokenize(setence)
>>> list(token)
['hello', ',', 'world', '!']
import jieba
# 模糊模式
>>> seg_list = list(jieba.cut('2019年03月21号,我在清华同方A2楼一层的培训教室中 面试算法岗位,不知道能不能面上,OMG!', cut_all = False))
>>> list(seg_list)
['2019', '年', '03', '月', '21', '号', ',', '我', '在', '清华同方', 'A2', '楼', '一层', '的', '培训', '教室', '中', '面试', '算法', '岗位', ',', '不', '知道', '能', '不能', '面上', ',', 'OMG', '!']
print("/".join(seg_list))
# 精确模式,默认精确
>>> seg_list = list(jieba.cut('2019年03月21号,我在清华同方A2楼一层的培训教室中 面试算法岗位,不知道能不能面上,OMG!', cut_all = True))
>>> list(seg_list)
['2019', '年', '03', '月', '21', '号', '', '', '我', '在', '清华', '清华同方', '同方', 'A2', '楼', '一层', '的', '培训', '教室', '中', '面试', '试算', '算法', '岗位', '', '', '不知', '知道', '能', '不能', '能面', '面上', '', 'OMG', '']
#搜索引擎模式
>>> seg_list = jieba.cut_for_search('2019年03月21号,我在清华同方A2楼一层的培训 教室中面试算法岗位,不知道能不能面上,OMG!')
>>> list(seg_list)
['2019', '年', '03', '月', '21', '号', ',', '我', '在', '清华', '同方', '清华同方', 'A2', '楼', '一层', '的', '培训', '教室', '中', '面试', '算法', '岗位', ',', '不', '知道', '能', '不能', '面上', ',', 'OMG', '!']
- 2中文获取词性
import jieba.posseg as psg
content = "现如今,机器学习和深度学习带动人工智能飞速的发展,并在图片处理、语音识别领域取得巨大成功。"
print([(x.word,x.flag) for x in psg.lcut(content)])
[('现如今', 't'), (',', 'x'), ('机器', 'n'), ('学习', 'v'), ('和', 'c'), ('深度', 'ns'), ('学习', 'v'), ('带动', 'v'), ('人工智能', 'n'), ('飞速', 'n'), ('的', 'uj'), ('发展', 'vn'), (',', 'x'), ('并', 'c'), ('在', 'p'), ('图片', 'n'), ('处理', 'v'), ('、', 'x'), ('语音', 'n'), ('识别', 'v'), ('领域', 'n'), ('取得', 'v'), ('巨大成功', 'nr'), ('。', 'x')]
- 3获取分词结果中词列表的 top n
from collections import Counter
top5= Counter(segs_5).most_common(5)
print(top5)
“”“
结果为:
[(',', 2), ('学习', 2), ('现如今', 1), ('机器', 1), ('和', 1)]
- 4自定义添加词和字典,增加本地词典提高准确度
txt = "铁甲网是中国最大的工程机械交易平台。"
print(jieba.lcut(txt))
jieba.load_userdict('user_dict.txt')
print(jieba.lcut(txt))
- TF-IDF的介绍:https://www.cnblogs.com/LHWorldBlog/p/9279051.html
- 编辑距离/Levenshtein距离,是指两个字符串之间, 由一个转成另一个所需要的最少编辑操作次数。