中文文字的關鍵字提取

2021-08-29 18:03:43 字數 4404 閱讀 3518

import jieba.analyse

sentence = "人工智慧(artificial intelligence),英文縮寫為ai。它是研究、開發用於模擬、延伸和擴充套件人的智慧型的理論、方法、技術及應用系統的一門新的技術科學。人工智慧是電腦科學的乙個分支,它企圖了解智慧型的實質,並生產出一種新的能以人類智慧型相似的方式做出反應的智慧型機器,該領域的研究包括機械人、語言識別、影象識別、自然語言處理和專家系統等。人工智慧從誕生以來,理論和技術日益成熟,應用領域也不斷擴大,可以設想,未來人工智慧帶來的科技產品,將會是人類智慧型的「容器」。人工智慧可以對人的意識、思維的資訊過程的模擬。人工智慧不是人的智慧型,但能像人那樣思考、也可能超過人的智慧型。人工智慧是一門極富挑戰性的科學,從事這項工作的人必須懂得計算機知識,心理學和哲學。人工智慧是包括十分廣泛的科學,它由不同的領域組成,如機器學習,計算機視覺等等,總的說來,人工智慧研究的乙個主要目標是使機器能夠勝任一些通常需要人類智慧型才能完成的複雜工作。但不同的時代、不同的人對這種「複雜工作」的理解是不同的。2023年12月,人工智慧入選「2023年度中國**十大流行語」。"

# sentence:待提取的文字語料;

# allowpos:僅包括指定詞性的詞,預設值為空,即不篩選。

keywords = " ".join(jieba.analyse.extract_tags(sentence , topk=20, withweight=false, allowpos=()))

print(keywords)

keywords =(jieba.analyse.extract_tags(sentence , topk=10, withweight=true, allowpos=(['n','v'])))

print(keywords)

import jieba.analyse

sentence = "人工智慧(artificial intelligence),英文縮寫為ai。它是研究、開發用於模擬、延伸和擴充套件人的智慧型的理論、方法、技術及應用系統的一門新的技術科學。人工智慧是電腦科學的乙個分支,它企圖了解智慧型的實質,並生產出一種新的能以人類智慧型相似的方式做出反應的智慧型機器,該領域的研究包括機械人、語言識別、影象識別、自然語言處理和專家系統等。人工智慧從誕生以來,理論和技術日益成熟,應用領域也不斷擴大,可以設想,未來人工智慧帶來的科技產品,將會是人類智慧型的「容器」。人工智慧可以對人的意識、思維的資訊過程的模擬。人工智慧不是人的智慧型,但能像人那樣思考、也可能超過人的智慧型。人工智慧是一門極富挑戰性的科學,從事這項工作的人必須懂得計算機知識,心理學和哲學。人工智慧是包括十分廣泛的科學,它由不同的領域組成,如機器學習,計算機視覺等等,總的說來,人工智慧研究的乙個主要目標是使機器能夠勝任一些通常需要人類智慧型才能完成的複雜工作。但不同的時代、不同的人對這種「複雜工作」的理解是不同的。2023年12月,人工智慧入選「2023年度中國**十大流行語」。"

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

# 設定檔案路徑

file_desc = "".join(["d://input_py//day03//",'car.csv'])

stop_words = "".join(["d://input_py//day03//",'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)) #去掉停用詞

except exception:

print(line)

continue

# 構建詞袋模型

dictionary = corpora.dictionary(sentences)

corpus = [dictionary.doc2bow(sentence) for sentence in sentences]

# lda模型,num_topics是主題的個數,這裡定義了5個

lda = gensim.models.ldamodel.ldamodel(corpus=corpus, id2word=dictionary, num_topics=10)

# 我們查一下第1號分類,其中最常出現的5個詞是:

print(lda.print_topic(1, topn=5))

# 我們列印所有5個主題,每個主題顯示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

# 在視覺化部分,我們首先畫出了九個主題的7個詞的概率分布圖

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'9個主題及其7個主要詞的概率', fontsize=18)

中文文字關鍵字分割演算法

這幾天為gimi talk研究中文的分詞,主要問題是要消除歧義的關鍵字,如何分割的問題。1.查詢所有有效詞 起始位置和詞長 長春 0,2 長春市 0,3 市長 2,2 長春 3,2 4,2 藥店 5,2 2.找出所有有效詞可能的組合 a.長春 市長 店 登入詞 3個 碎詞 1個 b.長春 市 長春 ...

關鍵字 php提取關鍵字中文分詞

每日17點準時技術乾貨分享 需求 做seo的keywords時,需要從標題或者正文裡提取關鍵字 2.封裝 loaddict pa setsource content pa startanalysis true tags pa getfinallykeywords num 獲取文章中的n個關鍵字 re...

關鍵字 EXCEL關鍵字提取

如何根據關鍵字列表將單元格中的關鍵字提取出來,本文提供三種方法,看哪一種適合你!開啟excel 表,內容如下 a列為需要提取關鍵字的內容 f列為關鍵字列表 bcd為三種方法演示 方法一 公式 if sumproduct countif a2,f 2 f 13 lookup 0 frequency 0...