Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie Jieba für Worthäufigkeitsstatistiken und Schlüsselwortextraktion in Python

So verwenden Sie Jieba für Worthäufigkeitsstatistiken und Schlüsselwortextraktion in Python

WBOY
Freigeben: 2023-05-02 19:46:05
nach vorne
4415 Leute haben es durchsucht

1 Worthäufigkeitsstatistik

1.1 Einfache Worthäufigkeitsstatistik

1. Importieren Sie die jieba-Bibliothek und definieren Sie Text jieba库并定义文本

import jieba
text = "Python是一种高级编程语言,广泛应用于人工智能、数据分析、Web开发等领域。"
Nach dem Login kopieren

2.对文本进行分词

words = jieba.cut(text)
Nach dem Login kopieren

这一步会将文本分成若干个词语,并返回一个生成器对象words,可以使用for循环遍历所有的词语。

3. 统计词频

word_count = {}
for word in words:
    if len(word) > 1:
        word_count[word] = word_count.get(word, 0) + 1
Nach dem Login kopieren

这一步通过遍历所有的词语,统计每个词语出现的次数,并保存到一个字典word_count中。在统计词频时,可以通过去除停用词等方式进行优化,这里只是简单地过滤了长度小于2的词语。

4. 结果输出

for word, count in word_count.items():
    print(word, count)
Nach dem Login kopieren

So verwenden Sie Jieba für Worthäufigkeitsstatistiken und Schlüsselwortextraktion in Python

1.2 加入停用词

为了更准确地统计词频,我们可以在词频统计中加入停用词,以去除一些常见但无实际意义的词语。具体步骤如下:

定义停用词列表

import jieba

# 停用词列表
stopwords = ['是', '一种', '等']
Nach dem Login kopieren

对文本进行分词,并过滤停用词

text = "Python是一种高级编程语言,广泛应用于人工智能、数据分析、Web开发等领域。"
words = jieba.cut(text)
words_filtered = [word for word in words if word not in stopwords and len(word) > 1]
Nach dem Login kopieren

统计词频并输出结果

word_count = {}
for word in words_filtered:
    word_count[word] = word_count.get(word, 0) + 1
for word, count in word_count.items():
    print(word, count)
Nach dem Login kopieren

加入停用词后,输出的结果是:

So verwenden Sie Jieba für Worthäufigkeitsstatistiken und Schlüsselwortextraktion in Python

可以看到,被停用的一种这个词并没有显示出来。

2 关键词提取

2.1 关键词提取原理

与对词语进行单纯计数的词频统计不同,jieba提取关键字的原理是基于TF-IDF(Term Frequency-Inverse Document Frequency)算法。TF-IDF算法是一种常用的文本特征提取方法,可以衡量一个词语在文本中的重要程度。

具体来说,TF-IDF算法包含两个部分:

  • Term Frequency(词频):指一个词在文本中出现的次数,通常用一个简单的统计值表示,例如词频、二元词频等。词频反映了一个词在文本中的重要程度,但是忽略了这个词在整个语料库中的普遍程度。

  • Inverse Document Frequency(逆文档频率):指一个词在所有文档中出现的频率的倒数,用于衡量一个词的普遍程度。逆文档频率越大,表示一个词越普遍,重要程度越低;逆文档频率越小,表示一个词越独特,重要程度越高。

TF-IDF算法通过综合考虑词频和逆文档频率,计算出每个词在文本中的重要程度,从而提取关键字。在jieba中,关键字提取的具体实现包括以下步骤:

  • 对文本进行分词,得到分词结果。

  • 统计每个词在文本中出现的次数,计算出词频。

  • 统计每个词在所有文档中出现的次数,计算出逆文档频率。

  • 综合考虑词频和逆文档频率,计算出每个词在文本中的TF-IDF值。

  • 对TF-IDF值进行排序,选取得分最高的若干个词作为关键字。

举个例子
F(Term Frequency)指的是某个单词在一篇文档中出现的频率。计算公式如下:
T F = ( 单词在文档中出现的次数 ) / ( 文档中的总单词数 )
例如,在一篇包含100个单词的文档中,某个单词出现了10次,则该单词的TF为
10 / 100 = 0.1
IDF(Inverse Document Frequency)指的是在文档集合中出现某个单词的文档数的倒数。计算公式如下:
I D F = l o g ( 文档集合中的文档总数 / 包含该单词的文档数 )
例如,在一个包含1000篇文档的文档集合中,某个单词在100篇文档中出现过,则该单词的IDF为 l o g ( 1000 / 100 ) = 1.0
TFIDF是将TF和IDF相乘得到的结果,计算公式如下:
T F I D F = T F ∗ I D F

需要注意的是,TF-IDF算法只考虑了词语在文本中的出现情况,而忽略了词语之间的关联性。因此,在一些特定的应用场景中,需要使用其他的文本特征提取方法,例如词向量、主题模型等。

2.2 关键词提取代码

import jieba.analyse

# 待提取关键字的文本
text = "Python是一种高级编程语言,广泛应用于人工智能、数据分析、Web开发等领域。"

# 使用jieba提取关键字
keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True)

# 输出关键字和对应的权重
for keyword, weight in keywords:
    print(keyword, weight)
Nach dem Login kopieren

在这个示例中,我们首先导入了jieba.analyse模块,然后定义了一个待提取关键字的文本text。接着,我们使用jieba.analyse.extract_tags()函数提取关键字,其中topK参数表示需要提取的关键字个数,withWeightrrreee #🎜🎜 #2. Wortsegmentierung des Textes
rrreee

Dieser Schritt unterteilt den Text in mehrere Wörter und gibt ein Generatorobjekt words zurück, für das Sie verwenden können Alle Wörter durchlaufen.

So verwenden Sie Jieba für Worthäufigkeitsstatistiken und Schlüsselwortextraktion in Python3. Worthäufigkeit zählen

rrreee#🎜🎜#Dieser Schritt zählt die Häufigkeit jedes Worts durch Durchlaufen aller Wörter und speichert es in einem Wörterbuch word_count Code> Mitte. Beim Zählen der Worthäufigkeiten kann eine Optimierung durch Entfernen von Stoppwörtern erfolgen. Dabei werden Wörter mit einer Länge kleiner als 2 einfach gefiltert. #🎜🎜##🎜🎜#4. Ergebnisausgabe#🎜🎜#rrreee#🎜🎜#<img src="https://img.php.cn/upload/article/000/887/227/168302796823258.png" alt="So verwenden Sie Jieba in Python für Worthäufigkeitsstatistiken und Schlüsselwortextraktion">#🎜🎜##🎜🎜#1.2 Stoppwörter hinzufügen#🎜🎜##🎜🎜#Um die Worthäufigkeit genauer zu zählen, können wir dies tun Stoppwörter zur Worthäufigkeit hinzufügen Stoppwörter werden zur Statistik hinzugefügt, um einige häufige, aber bedeutungslose Wörter zu entfernen. Die spezifischen Schritte sind wie folgt: #🎜🎜##🎜🎜#Definieren Sie die Stoppwortliste #🎜🎜#rrreee#🎜🎜# Segmentieren Sie den Text und filtern Sie die Stoppwörter #🎜🎜#rrreee#🎜🎜# Zählen Sie die Worthäufigkeit und geben Sie die Ergebnisse aus #🎜🎜#rrreee#🎜🎜#Nach dem Hinzufügen von Stoppwörtern lautet das Ausgabeergebnis: #🎜🎜##🎜🎜#<img src="https://img.php.cn/upload/article/%20000/887%20/227/168302796888659.png" alt="So verwenden Sie Jieba für Worthäufigkeitsstatistiken und Schlüsselwortextraktion in Python">#🎜🎜##🎜🎜#Sie können sehen, dass der deaktivierte <code>Typist > Das Wort wird nicht angezeigt. #🎜🎜##🎜🎜#2 Schlüsselwortextraktion#🎜🎜##🎜🎜#2.1 Schlüsselwortextraktionsprinzip#🎜🎜##🎜🎜#Im Gegensatz zu Worthäufigkeitsstatistiken, die einfach Wörter zählen, basiert Jiebas Prinzip der Schlüsselwortextraktion darauf der TF-IDF-Algorithmus (Term Frequency-Inverse Document Frequency). Der TF-IDF-Algorithmus ist eine häufig verwendete Methode zur Extraktion von Textmerkmalen, mit der die Bedeutung eines Wortes im Text gemessen werden kann. #🎜🎜##🎜🎜# Konkret besteht der TF-IDF-Algorithmus aus zwei Teilen: #🎜🎜#
  • #🎜🎜#Term Frequency (Begriffshäufigkeit): Bezieht sich auf gibt an, wie oft ein Wort in einem Text vorkommt, normalerweise dargestellt durch einen einfachen statistischen Wert, wie z. B. Worthäufigkeit, Bigramm-Worthäufigkeit usw. Die Worthäufigkeit spiegelt die Bedeutung eines Wortes im Text wider, ignoriert jedoch die Verbreitung des Wortes im gesamten Korpus. #🎜🎜#
  • #🎜🎜#Inverse Dokumenthäufigkeit: bezieht sich auf den Kehrwert der Häufigkeit, mit der ein Wort in allen Dokumenten vorkommt, und wird verwendet, um die Häufigkeit eines Wortes zu messen. Je größer die inverse Dokumenthäufigkeit, desto häufiger ist ein Wort und je geringer die inverse Dokumenthäufigkeit, desto eindeutiger ist das Wort und desto höher die Bedeutung. #🎜🎜#
#🎜🎜#Der TF-IDF-Algorithmus berechnet die Wichtigkeit jedes Wortes im Text, indem er die Worthäufigkeit und die umgekehrte Dokumenthäufigkeit umfassend berücksichtigt, um Schlüsselwörter zu extrahieren. In jieba umfasst die spezifische Implementierung der Schlüsselwortextraktion die folgenden Schritte: #🎜🎜#
  • #🎜🎜# Führen Sie eine Wortsegmentierung für den Text durch und erhalten Sie die Wortsegmentierungsergebnisse. #🎜🎜#
  • #🎜🎜# Zählen Sie, wie oft jedes Wort im Text vorkommt und berechnen Sie die Worthäufigkeit. #🎜🎜#
  • #🎜🎜# Zählen Sie, wie oft jedes Wort in allen Dokumenten vorkommt, und berechnen Sie die umgekehrte Dokumenthäufigkeit. #🎜🎜#
  • #🎜🎜# Berechnen Sie unter Berücksichtigung der Worthäufigkeit und der inversen Dokumenthäufigkeit den TF-IDF-Wert jedes Wortes im Text. #🎜🎜#
  • #🎜🎜# Sortieren Sie die TF-IDF-Werte und wählen Sie die Wörter mit den höchsten Punktzahlen als Schlüsselwörter aus. #🎜🎜#
#🎜🎜#Zum Beispiel: #🎜🎜#F (Term Frequency) bezieht sich auf das Vorkommen eines bestimmten Wortes in einer Dokumenthäufigkeit des Auftretens. Die Berechnungsformel lautet wie folgt: #🎜🎜#T F = (die Häufigkeit, mit der ein Wort im Dokument vorkommt) / (die Gesamtzahl der Wörter im Dokument) #🎜🎜#Beispiel: In einem Dokument mit 100 Wörtern: Kommt ein bestimmtes Wort zehnmal vor, dann beträgt die TF des Wortes #🎜🎜#10 / 100 = 0,1 #🎜🎜#IDF (Inverse Document Frequency) bezieht sich auf den Kehrwert der Anzahl der Dokumente, in denen ein bestimmtes Wort vorkommt Dokumentensammlung. Die Berechnungsformel lautet wie folgt: #🎜🎜#I D F = l o g (Gesamtzahl der Dokumente in der Dokumentensammlung / Anzahl der Dokumente, die das Wort enthalten) #🎜🎜#In einer Dokumentensammlung mit 1.000 Dokumenten erscheint beispielsweise ein bestimmtes Wort in 100 Dokumenten erscheint in , dann ist die IDF des Wortes log ( 1000 / 100 ) = 1,0 🎜#
#🎜🎜#Es ist zu beachten, dass der TF-IDF-Algorithmus nur das Vorkommen von Wörtern im Text berücksichtigt und ignoriert die Korrelation zwischen Wörtern. Daher müssen in einigen spezifischen Anwendungsszenarien andere Methoden zur Extraktion von Textmerkmalen verwendet werden, z. B. Wortvektoren, Themenmodelle usw. #🎜🎜##🎜🎜#2.2 Schlüsselwortextraktionscode#🎜🎜#rrreee#🎜🎜#In diesem Beispiel haben wir zuerst das Modul jieba.analyse importiert und dann einen zu extrahierenden Schlüssel definiert Text des Wortes text. Als nächstes verwenden wir die Funktion jieba.analyse.extract_tags(), um Schlüsselwörter zu extrahieren, wobei der Parameter topK die Anzahl der zu extrahierenden Schlüsselwörter angibt, withWeight code> Der Parameter gibt an, ob der Gewichtungswert des Schlüsselworts zurückgegeben werden soll. Schließlich durchlaufen wir die Schlüsselwortliste und geben jedes Schlüsselwort und seinen entsprechenden Gewichtungswert aus. #🎜🎜#Das Ausgabeergebnis dieser Funktion ist: #🎜🎜##🎜🎜##🎜🎜##🎜🎜#<p>Wie Sie sehen können, hat Jieba basierend auf dem TF-IDF-Algorithmus mehrere Schlüsselwörter im Eingabetext extrahiert und den Gewichtungswert jedes Schlüsselworts zurückgegeben. </p>

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Jieba für Worthäufigkeitsstatistiken und Schlüsselwortextraktion in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage