jieba分词和高频词提取示例代码

import jieba
import jieba.analyse as aly


# 中文 分词工具jieba
sent = '中文分词是文本处理不可或缺的一步!'
seglist = jieba.cut(sent, cut_all=True)
print("全模式", '/'.join(seglist))
# 全模式 中文/分词/是/文本/文本处理/本处/处理/不可/不可或缺/或缺/的/一步//
seglist = jieba.cut(sent)
print("精确模式", '/'.join(seglist))
# 精确模式 中文/分词/是/文本处理/不可或缺/的/一步/!
seglist = jieba.cut_for_search(sent)
print("搜索引擎模式", '/'.join(seglist))
# 中文/分词/是/文本/本处/处理/文本处理/不可/或缺/不可或缺/的/一步/!

# 高频词读取  TF/IDF

content = "自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。" \
          "因此,自然语言处理是与人机交互的领域有关的。在自然语言处理面临很多挑战,包括自然语言理解," \
          "因此,自然语言处理涉及人机交互的面积。在NLP诸多挑战涉及自然语言理解,即计算机源于人为或自然语言输入的意思," \
          "和其他涉及到自然语言生成."

# 加载自定义idf词典\n",
aly.set_idf_path('D:\\yangyang\\spy\\nltksample\\103\\idf.txt.big')
# 加载停用词典\n",
aly.set_stop_words('.\\stop_words.utf8')
# 第一个参数:待提取关键词的文本\n",
# 第二个参数:返回关键词的数量,重要性从高到低排序\n",
# 第三个参数:是否同时返回每个关键词的权重\n",
# 第四个参数:词性过滤,为空表示不过滤,若提供则仅返回符合词性要求的关键词\n"
keywords = aly.extract_tags(content, topK=10, withWeight=True, allowPOS=())
# 分别为关键词和相应的权重\n",
for item in keywords:
    print(item[0], item[1])

# 自然语言 2.0790900005043476
# NLP 0.5197725001260869
# 计算机 0.5197725001260869
# 领域 0.5197725001260869
# 人机交互 0.5197725001260869
# 挑战 0.5197725001260869
# 理解 0.5197725001260869
# 处理 0.4705091875965217
# 涉及 0.3839134341652174
# 人工智能 0.25988625006304344

# # 第一个参数:待提取关键词的文本\n",
#     "# 第二个参数:返回关键词的数量,重要性从高到低排序\n",
#     "# 第三个参数:是否同时返回每个关键词的权重\n",
#     "# 第四个参数:词性过滤,为空表示过滤所有,与TF—IDF不一样!\n
keywords = aly.textrank(content, topK=10, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v'))
# 分别为关键词和相应的权重\n",
print(',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,')
for item in keywords:
    print(item[0], item[1])

# 涉及 1.0
# 计算机 0.9618169519358478
# 处理 0.8124660402732825
# 理解 0.7885898958379202
# 挑战 0.7833575495518058
# 人机交互 0.7343470452632993
# 语言学 0.727536034596871
# 人类 0.6290562193534068
# 人工智能 0.5809911385488661
# 关注 0.577881611632419

猜你喜欢

转载自blog.csdn.net/qq_29678299/article/details/91355682
今日推荐