赞
踩
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False,allowPOS=())
import jieba.analyse
sentence = "人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。 [1] 2017年12月,人工智能入选“2017年度中国媒体十大流行语”。"
keywords = " ".join(jieba.analyse.extract_tags(sentence=sentence, topK=20, withWeight=False, allowPOS=()))
print(keywords)
keywords = jieba.analyse.extract_tags(sentence, topK=10, withWeight=True, allowPOS=(['n', 'v'])) # 只提取前10个名词和动词
print(keywords)
jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
result = " ".join(jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=("ns", "n", "vn", "v")))
print(result)
result = " ".join(jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=("n", "v"))) # 只看动词和名词
print(result)
import jieba.analyse as analyse import jieba import pandas as pd from gensim import corpora, models, similarities import gensim import numpy as np import matplotlib.pyplot as plt %matplotlib inline # 设置文件路径 dir = "E://DeepLearning//jupyter_code//dataset//corpus//02_project//" file_desc = "".join([dir, "car.csv"]) stop_words = "".join([dir, "stopwords.txt"]) # 定义停用词 stopwords = pd.read_csv(stop_words, index_col=False, quoting=3, sep="\t", names=["stopword"], encoding="utf-8") stopwords = stopwords['stopword'].values # 加载语料 df = pd.read_csv(file_desc, encoding='utf-8') # 删除nan行 df.dropna(inplace=True) lines = df.content.values.tolist() # 开始分词 sentences = [] for line in lines: try: segs = jieba.lcut(line) segs = [v for v in segs if not str(v).isdigit()] # 去数字 segs = list(filter(lambda x: x.strip(), segs)) # 去空格 segs = list(filter(lambda x: x not in stopwords, segs)) # 去停用词 sentences.append(segs) except Exception: print(line) continue # 构建词袋模型 dictionary = corpora.Dictionary(sentences) corpus = [dictionary.doc2bow(sentence) for sentence in sentences] # lda模型,num_topics是主题个数 lda = gensim.models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, num_topics=10) # 查一下第1号分类,其中最常出现的5个词 print(lda.print_topic(1, topn=5)) print("---------------------------------分割线-------------------------------------") # 打印所有10个主题,每个主题显示8个词 for topic in lda.print_topics(num_topics=10, num_words=8): print(topic[1]) # 显示中文matplotlib plt.rcParams["font.sans-serif"] = [u'SimHei'] plt.rcParams["axes.unicode_minus"] = False # 在可视化部分,首先画出10个主题的8个词的概率分布图 num_show_term = 8 # 每个主题下显示几个词 num_topics = 10 for i, k in enumerate(range(num_topics)): ax = plt.subplot(2, 5, i+1) item_dis_all = lda.get_topic_terms(topicid=k) item_dis = np.array(item_dis_all[:num_show_term]) ax.plot(range(num_show_term), item_dis[:, 1], 'b*') item_word_id = item_dis[:, 0].astype(np.int) word = [dictionary.id2token[i] for i in item_word_id] ax.set_ylabel(u"概率") for j in range(num_show_term): ax.text(j, item_dis[j, 1], word[j], bbox=dict(facecolor='green', alpha=0.1)) plt.suptitle(u"10个主题及其8个主要词的概率", fontsize=18) plt.show()
from pyhanlp import *
result = HanLP.extractKeyword(sentence, 20)
print(result)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。