Ⅰ 如何用 python 中的 NLTK 對中文進行分析和處理
有很多好用的中文處理包:
Jieba:可以用來做分詞,詞性標注,TextRank
HanLP:分詞,命名實體識別,依存句法分析,還有FudanNLP,NLPIR
個人覺得都比NLTK好用~
Ⅱ 目前常用的自然語言處理開源項目/開發包有哪些
中文主要有:NLTK,HanLP,Ansj,THULAC,結巴分詞,FNLP,哈工大LTP,中科院ICTCLAS分詞,GATE,SnowNLP,東北大學NiuTrans,NLPIR;英文主要有:NLTK,Genism,TextBlob,Stanford NLP,Spacy。英文的開源NLP工具主要參見StackoverFlow-java or python for nlp。HanLP:HanLP是由一系列模型與演算法組成的Java工具包,目標是普及自然語言處理在生產環境中的應用。HanLP具備功能完善、性能高效、架構清晰、語料時新、可自定義的特點。開發語言:Java,網址:hankcs/HanLP,開發機構:大快公司,協議:Apache-2.0功能:非常多,主要有中文分詞,詞性標注,命名實體識別,關鍵詞提取,自動摘要,短語提取,拼音轉換,簡繁轉換,文本推薦,依存句法分析,文本分類:情感分析,word2vec,語料庫工具。
Ⅲ hanlp可以使用python調用嗎
安裝JDK
JPype並沒有像IKVM那樣實現自己的JVM,而是以pipe方式調用原生JVM。所以我們需要一個JVM,比如:
Oracle JDK
OpenJDK
安裝JDK非常簡單,分清楚32位和64位即可,必須與OS和Python的位數一致,具體安裝過程不再贅述。
唯一需要注意的是,必須設置環境變數JAVA_HOME到JDK的根目錄,JDK的安裝程序不一定會幫你做這一步。
安裝編譯工具鏈
Python的package一般是以源碼形式發布的,其中一些C代碼必須在用戶機器上編譯,所以需要安裝編譯工具鏈。當然你也可以跳過這步,直接下載binary。
Windows
安裝免費的Visual C++ Express 2010。
Debian/Ubuntu
sudo apt-get install g++
Red Hat/Fedora
su -c 'yum install gcc-c++'
安裝JPype
本文讀者應該都是Python程序員,所以略過了安裝Python這一步。不過必須注意的是,JPype版本與Python的對應兼容關系:
Python2.x:JPype
Python3.x:JPype1-py3
使用setup.py安裝
下載源碼後解壓,在目錄下運行:
*nix
sudo python3 setup.py install
Windows
python setup.py install
直接下載binary
當然你也可以選擇下載binary,比如JPype1-py3主頁上的binary列表。
在Pycharm中安裝
如果你正在使用Pycharm這款IDE的話,那麼事情就簡單多了。
首先在Project Interpreter裡面點擊加號:
搜索JPype,選擇你需要的版本安裝:
稍等片刻就安裝成功了:
測試安裝結果
終於又到了寫代碼的開心時間了,可以通過如下代碼測試是否安裝成功:
from jpype import *startJVM(getDefaultJVMPath())java.lang.System.out.println("hello world")shutdownJVM()
輸出如下結果表示安裝成功:
hello worldJVM activity report : classes loaded : 31JVM has been shutdown
調用HanLP
關於HanLP
HanLP是
一個致力於向生產環境普及NLP技術的開源Java工具包,支持中文分詞(N-最短路分詞、CRF分詞、索引分詞、用戶自定義詞典、詞性標注),命名實體
識別(中國人名、音譯人名、日本人名、地名、實體機構名識別),關鍵詞提取,自動摘要,短語提取,拼音轉換,簡繁轉換,文本推薦,依存句法分析
(MaxEnt依存句法分析、神經網路依存句法分析)。
下載HanLP
你可以直接下載Portable版的jar,零配置。
也可以使用自定義的HanLP——HanLP由3部分組成:類庫hanlp.jar包、模型data包、配置文件hanlp.properties,請前往項目主頁下載最新版:https://github.com/hankcs/HanLP/releases。對於非portable版,下載後,你需要編輯配置文件第一行的root指向data的父目錄,詳見文檔。
這里,假設新建了一個目錄(假定為C:\hanlp),把hanlp.jar和hanlp.properties(portable版的話,僅需一個hanlp-portable.jar)放進去:
Python調用
下面是一份Python3的調用示例:
# -*- coding:utf-8 -*-
# Filename: main.py
# Author:hankcs
# Date: 2015/11/26 14:16
from jpype import *
startJVM(getDefaultJVMPath(), "-Djava.class.path=C:\hanlp\hanlp-1.2.8.jar;C:\hanlp", "-Xms1g", "-Xmx1g")
HanLP = JClass('com.hankcs.hanlp.HanLP')
# 中文分詞
print(HanLP.segment('你好,歡迎在Python中調用HanLP的API'))
testCases = [
"商品和服務",
"結婚的和尚未結婚的確實在干擾分詞啊",
"買水果然後來世博園最後去世博會",
"中國的首都是北京",
"歡迎新老師生前來就餐",
"工信處女幹事每月經過下屬科室都要親口交代24口交換機等技術性器件的安裝工作",
"隨著頁游興起到現在的頁游繁盛,依賴於存檔進行邏輯判斷的設計減少了,但這塊也不能完全忽略掉。"]
for sentence in testCases: print(HanLP.segment(sentence))
# 命名實體識別與詞性標注
NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
print(NLPTokenizer.segment('中國科學院計算技術研究所的宗成慶教授正在教授自然語言處理課程'))
# 關鍵詞提取
document = "水利部水資源司司長陳明忠9月29日在國務院新聞辦舉行的新聞發布會上透露," \
"根據剛剛完成了水資源管理制度的考核,有部分省接近了紅線的指標," \
"有部分省超過紅線的指標。對一些超過紅線的地方,陳明忠表示,對一些取用水項目進行區域的限批," \
"嚴格地進行水資源論證和取水許可的批准。"
print(HanLP.extractKeyword(document, 2))
# 自動摘要
print(HanLP.extractSummary(document, 3))
# 依存句法分析
print(HanLP.parseDependency("徐先生還具體幫助他確定了把畫雄鷹、松鼠和麻雀作為主攻目標。"))
shutdownJVM()
Ⅳ python自然語言處理有沒有新的版本
1 緣起
本文試著向讀者們介紹自然語言處理(Natural Language Processing)這一領域,通常簡稱為 NLP。然而,不同於一般只是描述 NLP 重要概念的文章,本文還藉助 Python 來形象地說明。對於不熟悉 Python 的讀者們,本文也提供了部分參考資料教你如何進行 Python 編程。
2 相關介紹
2.1 自然語言處理
自然語言處理廣納了眾多技術,對自然或人類語言進行自動生成,處理與分析。雖然大部分 NLP 技術繼承自語言學和人工智慧,但同樣受到諸如機器學習,計算統計學和認知科學這些相對新興的學科影響。
在展示 NLP 技術的例子前,有必要介紹些非常基礎的術語。請注意:為了讓文章通俗易懂,這些定義在語言上就不一定考究。
詞例(Token):對輸入文本做任何實際處理前,都需要將其分割成諸如詞、標點符號、數字或純字母數字(alphanumerics)等語言單元(linguistic units)。這些單元被稱為詞例。
句子:由有序的詞例序列組成。
詞例還原(Tokenization):將句子還原成所組成的詞例。以分割型語言(segmented languages)英語為例,空格的存在使詞例還原變得相對容易同時也索然無味。然而,對於漢語和阿拉伯語,因為沒有清晰的邊界,這項工作就稍顯困難。另外,在某些非分割型語言(non-segmented languages)中,幾乎所有的字元(characters)都能以單字(one-character)存在,但同樣也可以組合在一起形成多字(multi-characterwords)形式。
語料庫:通常是由豐富句子組成的海量文本。
詞性標簽(Part-of-speech (POS) Tag):任一單詞都能被歸入到至少一類詞彙集(set of lexical)或詞性條目(part-of-speech categories)中,例如:名詞、動詞、形容詞和冠詞等。詞性標簽用符號來代表一種詞彙條目——NN(名詞)、VB(動詞)、JJ(形容詞)和AT(冠詞)。Brown Corpus是最悠久,也是最常用的標注集之一。詳情且聽下回分解。
剖析樹(Parse Tree):利用形式語法(formal grammar)的定義,可以用樹狀圖來表示給定句子的句法(syntactic)結構。
認識了基本的術語,下面讓我們了解 NLP 常見的任務:
詞性標注(POS Tagging):給定一個句子和組詞性標簽,常見的語言處理就是對句子中的每個詞進行標注。舉個例子,The ball is red,詞性標注後將變成The/AT ball/NN is/VB red/JJ。最先進的詞性標注器[9]准確率高達 96%。文本的詞性標注對於更復雜的 NLP 問題,例如我們後面會討論到的句法分析(parsing)和機器翻譯(machine translation)非常必要。
計算形態學(Computational Morphology):大量建立在「語素」(morphemes/stems)基礎上的片語成了自然語言,語素雖然是最小的語言單元,卻富含意義。計算形態學所關心的是用計算機發掘和分析詞的內部結構。
句法分析(Parsing):在語法分析的問題中,句法分析器(parser)將給定句子構造成剖析樹。為了分析語法,某些分析器假定一系列語法規則存在,但目前的解析器已經足夠機智地藉助復雜的統計模型[1]直接推斷分析樹。多數分析器能夠在監督式設置(supervised setting)下操作並且句子已經被詞性標注過了。統計句法分析是自然語言處理中非常活躍的研究領域。
機器翻譯(Machine Translation(MT)):機器翻譯的目的是讓計算機在沒有人工干預的情況下,將給定某種語言的文本流暢地翻譯成另一種語言文本。這是自然語言處理中最艱巨的任務之一,這些年來已經用許多不同的方式解決。幾乎所有的機器翻譯方法都依賴了詞性標注和句法分析作為預處理。
2.2 Python
Python 是一種動態類型(dynamically-typed),面向對象的解釋式(interpreted)編程語言。雖然它的主要優勢在於允許編程人員快速開發項目,但是大量的標准庫使它依然能適應大規模產品級工程項目。Python 的學習曲線非常陡峭並且有許多優秀的在線學習資源[11]。
2.3 自然語言工具集(Natural Language Toolkit)
盡管 Python 絕大部分的功能能夠解決簡單的 NLP 任務,但不足以處理標準的自然語言處理任務。這就是NLTK (自然語言處理工具集)誕生的原因。NLTK 集成了模塊和語料,以開源許可發布,允許學生對自然語言處理研究學習和生產研究。使用 NLTK 最大的優勢是集成化(entirely self-contained),不僅提供了方便的函數和封裝用於建立常見自然語言處理任務塊,而且提供原始和預處理的標准語料庫版本應用在自然語言處理的文獻和課程中。
3 使用 NLTK
NLTK 官網提供了很棒的說明文件和教程進行學習指導[13]。單純復述那些作者們的文字對於他們和本文都不公平。因此我會通過處理四個難度系數依次上升的 NLP 任務來介紹 NLTK。這些任務都來自於 NLTK 教程中沒有給出答案的練習或者變化過。所以每個任務的解決辦法和分析都是本文原創的。
3.1 NLTK 語料庫
正如前文所說,NLTK 囊括數個在 NLP 研究圈裡廣泛使用的實用語料庫。在本節中,我們來看看三個下文會用到的語料庫:
布朗語料庫(Brown Corpus):Brown Corpus of Standard American English 被認為是第一個可以在計算語言學處理[6]中使用的通用英語語料庫。它包含了一百萬字 1961 年出版的美語文本。它代表了通用英語的樣本,采樣自小說,新聞和宗教文本。隨後,在大量的人工標注後,誕生了詞性標注過的版本。
古登堡語料庫(Gutenberg Corpus):古登堡語料庫從最大的在線免費電子書[5]平台古登堡計劃(Gutenberg Project)中選擇了 14 個文本,整個語料庫包含了一百七十萬字。
Stopwords Corpus:除了常規的文本文字,另一類諸如介詞,補語,限定詞等含有重要的語法功能,自身卻沒有什麼含義的詞被稱為停用詞(stop words)。NLTK 所收集的停用詞語料庫(Stopwords Corpus)包含了 來自 11 種不同語言(包括英語)的 2400 個停用詞。
3.2 NLTK 命名約定
在開始利用 NLTK 處理我們的任務以前,我們先來熟悉一下它的命名約定(naming conventions)。最頂層的包(package)是 nltk,我們通過使用完全限定(fully qualified)的加點名稱例如:nltk.corpusandnltk.utilities來引用它的內置模塊。任何模塊都能利用 Python 的標准結構from . . . import . . .來導入頂層的命名空間。
3.3 任務 1 : 探索語料庫
上文提到,NLTK 含有多個 NLP 語料庫。我們把這個任務制定為探索其中某個語料庫。
任務:用 NLTK 的corpus模塊讀取包含在古登堡語料庫的austen-persuasion.txt,回答以下問題:
這個語料庫一共有多少字?
這個語料庫有多少個唯一單詞(unique words)?
前 10 個頻率最高的詞出現了幾次?
利用corpus模塊可以探索內置的語料庫,而且 NLTK 還提供了包含多個好用的類和函數在概率模塊中,可以用來計算任務中的概率分布。其中一個是FreqDist,它可以跟蹤分布中的采樣頻率(sample frequencies)。清單1演示了如何使用這兩個模塊來處理第一個任務。
清單 1: NLTK 內置語料庫的探索.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 導入 gutenberg 集
>>> from nltk.corpus import gutenberg
# 都有些什麼語料在這個集合里?
>>> print gutenberg.fileids()
['austen-emma.txt', 'austen-persuasion.txt', 'austen-sense.txt', 'bible-kjv.txt', 'blake-poems.txt', 'bryant-stories.txt', 'burgess-busterbrown.txt', 'carroll-alice.txt', 'chesterton-ball.txt', 'chesterton-brown.txt', 'chesterton-thursday.txt', 'edgeworth-parents.txt', 'melville-moby_dick.txt', 'milton-paradise.txt', 'shakespeare-caesar.txt', 'shakespeare-hamlet.txt', 'shakespeare-macbeth.txt', 'whitman-leaves.txt']
# 導入 FreqDist 類
>>> from nltk import FreqDist
# 頻率分布實例化
>>> fd = FreqDist()
# 統計文本中的詞例
>>> for word in gutenberg.words('austen-persuasion.txt'):
... fd.inc(word)
...
>>> print fd.N() # total number of samples
98171
>>> print fd.B() # number of bins or unique samples
6132
# 得到前 10 個按頻率排序後的詞
>>> for word in fd.keys()[:10]:
... print word, fd[word]
, 6750
the 3120
to 2775
. 2741
and 2739
of 2564
a 1529
in 1346
was 1330
; 1290
解答:簡奧斯丁的小說Persuasion總共包含 98171 字和 6141 個唯一單詞。此外,最常見的詞例是逗號,接著是單詞the。事實上,這個任務最後一部分是最有趣的經驗觀察之一,完美說明了單詞的出現現象。如果你對海量的語料庫進行統計,將每個單詞的出現次數和單詞出現的頻率由高到低記錄在表中,我們可以直觀地發現列表中詞頻和詞序的關系。事實上,齊普夫(Zipf)證明了這個關系可以表達為數學表達式,例如:對於任意給定單詞,$fr$ = $k$, $f$ 是詞頻,$r$ 是詞的排列,或者是在排序後列表中的詞序,而 $k$ 則是一個常數。所以,舉個例子,第五高頻的詞應該比第十高頻的詞的出現次數要多兩倍。在 NLP 文獻中,以上的關系通常被稱為「齊普夫定律(Zipf』s Law)」。
即使由齊普夫定律描述的數學關系不一定完全准確,但它依然對於人類語言中單詞分布的刻畫很有用——詞序小的詞很常出現,而稍微詞序大一點的則較為少出現,詞序非常大的詞則幾乎沒有怎麼出現。任務 1最後一部分使用 NLTK 非常容易通過圖形進行可視化,如清單 1a所示。相關的log-log關系,如圖 1,可以很清晰地發現我們語料庫中對應的擴展關系。
Ⅳ 部分常用分詞工具使用整理
以下分詞工具均能在Python環境中直接調用(排名不分先後)。
1、jieba(結巴分詞) 免費使用
2、HanLP(漢語言處理包) 免費使用
3、SnowNLP(中文的類庫) 免費使用
4、FoolNLTK(中文處理工具包) 免費使用
5、Jiagu(甲骨NLP) 免費使用
6、pyltp(哈工大語言雲) 商用需要付費
7、THULAC(清華中文詞法分析工具包) 商用需要付費
8、NLPIR(漢語分詞系統) 付費使用
1、jieba(結巴分詞)
「結巴」中文分詞:做最好的 Python 中文分片語件。
項目Github地址:jieba
安裝 :
pip install jieba
使用 :
import jieba
jieba.initialize()
text = '化妝和服裝'
words = jieba.cut(text)
words = list(words)
print(words)
2、HanLP(漢語言處理包)
HanLP是一系列模型與演算法組成的NLP工具包,由大快搜索主導並完全開源,目標是普及自然語言處理在生產環境中的應用。HanLP具備功能完善、性能高效、架構清晰、語料時新、可自定義的特點。
項目Github地址:pyhanlp
安裝:
pip install pyhanlp
使用 :
import pyhanlp
text = '化妝和服裝'
words = []
for term in pyhanlp.HanLP.segment(text):
words.append(term.word)
print(words)
3、SnowNLP(中文的類庫)
SnowNLP是一個python寫的類庫,可以方便的處理中文文本內容,是受到了TextBlob的啟發而寫的,由於現在大部分的自然語言處理庫基本都是針對英文的,於是寫了一個方便處理中文的類庫,並且和TextBlob不同的是,這里沒有用NLTK,所有的演算法都是自己實現的,並且自帶了一些訓練好的字典。
項目Github地址:snownlp
安裝:
pip install snownlp
使用:
import snownlp
text = '化妝和服裝'
words = snownlp.SnowNLP(text).words
print(words)
4、FoolNLTK(中文處理工具包)
可能不是最快的開源中文分詞,但很可能是最準的開源中文分詞。
項目Github地址:FoolNLTK
安裝:
pip install foolnltk
使用:
import fool
text = '化妝和服裝'
words = fool.cut(text)
print(words)
5、Jiagu(甲骨NLP)
基於BiLSTM模型,使用大規模語料訓練而成。將提供中文分詞、詞性標注、命名實體識別、關鍵詞抽取、文本摘要、新詞發現等常用自然語言處理功能。參考了各大工具優缺點製作,將Jiagu回饋給大家。
項目Github地址:jiagu
安裝:
pip3 install jiagu
使用:
import jiagu
jiagu.init()
text = '化妝和服裝'
words = jiagu.seg(text)
print(words)
6、pyltp(哈工大語言雲)
pyltp 是 LTP 的 Python 封裝,提供了分詞,詞性標注,命名實體識別,依存句法分析,語義角色標注的功能。
項目Github地址:pyltp,3.4模型下載鏈接:網盤
安裝:
pip install pyltp
使用:
import pyltp
segmentor = pyltp.Segmentor()
segmentor.load('model/ltp_data_v3.4.0/cws.model') # 模型放置的路徑
text = '化妝和服裝'
words = segmentor.segment(text)
words = list(words)
print(words)
7、THULAC(清華中文詞法分析工具包)
THULAC(THU Lexical Analyzer for Chinese)由清華大學自然語言處理與 社會 人文計算實驗室研製推出的一套中文詞法分析工具包,具有中文分詞和詞性標注功能。
項目Github地址:THULAC-Python
安裝:
pip install thulac
使用:
import thulac
thu = thulac.thulac(seg_only=True)
text = '化妝和服裝'
words = thu.cut(text, text=True).split()
print(words)
NLPIR(漢語分詞系統)
主要功能包括中文分詞;英文分詞;詞性標注;命名實體識別;新詞識別;關鍵詞提取;支持用戶專業詞典與微博分析。NLPIR系統支持多種編碼、多種操作系統、多種開發語言與平台。
項目Github地址:pynlpir
安裝:
pip install pynlpir
下載證書覆蓋到安裝目錄,NLPIR.user 例如安裝目錄:/usr/lib64/python3.4/site-packages/pynlpir/Data
使用 :
import pynlpir
pynlpir.open()
text = '化妝和服裝'
words = pynlpir.segment(text, pos_tagging=False)
print(words)
pynlpir.close()
Ⅵ python數據挖掘——文本分析
作者 | zhouyue65
來源 | 君泉計量
文本挖掘:從大量文本數據中抽取出有價值的知識,並且利用這些知識重新組織信息的過程。
一、語料庫(Corpus)
語料庫是我們要分析的所有文檔的集合。
二、中文分詞
2.1 概念:
中文分詞(Chinese Word Segmentation):將一個漢字序列切分成一個一個單獨的詞。
eg:我的家鄉是廣東省湛江市-->我/的/家鄉/是/廣東省/湛江市
停用詞(Stop Words):
數據處理時,需要過濾掉某些字或詞
√泛濫的詞,如web、網站等。
√語氣助詞、副詞、介詞、連接詞等,如 的,地,得;
2.2 安裝Jieba分詞包:
最簡單的方法是用CMD直接安裝:輸入pip install jieba,但是我的電腦上好像不行。
後來在這里:https://pypi.org/project/jieba/#files下載了jieba0.39解壓縮後 放在Python36Libsite-packages裡面,然後在用cmd,pip install jieba 就下載成功了,不知道是是什麼原因。
然後我再anaconda 環境下也安裝了jieba,先在Anaconda3Lib這個目錄下將jieba0.39的解壓縮文件放在裡面,然後在Anaconda propt下輸入 pip install jieba,如下圖:
2.3 代碼實戰:
jieba最主要的方法是cut方法:
jieba.cut方法接受兩個輸入參數:
1) 第一個參數為需要分詞的字元串
2)cut_all參數用來控制是否採用全模式
jieba.cut_for_search方法接受一個參數:需要分詞的字元串,該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細
注意:待分詞的字元串可以是gbk字元串、utf-8字元串或者unicode
jieba.cut以及jieba.cut_for_search返回的結構都是一個可迭代的generator,可以使用for循環來獲得分詞後得到的每一個詞語(unicode),也可以用list(jieba.cut(...))轉化為list代碼示例( 分詞 )
輸出結果為: 我 愛
Python
工信處
女幹事
每月 經過 下屬 科室 都 要 親口
交代
24 口 交換機 等 技術性 器件 的 安裝
工作
分詞功能用於專業的場景:
會出現真武七截陣和天罡北斗陣被分成幾個詞。為了改善這個現象,我們用導入詞庫的方法。
但是,如果需要導入的單詞很多,jieba.add_word()這樣的添加詞庫的方法就不高效了。
我們可以用jieba.load_userdict(『D:PDM2.2金庸武功招式.txt』)方法一次性導入整個詞庫,txt文件中為每行一個特定的詞。
2.3.1 對大量文章進行分詞
先搭建語料庫:
分詞後我們需要對信息處理,就是這個分詞來源於哪個文章。
四、詞頻統計
3.1詞頻(Term Frequency):
某個詞在該文檔中出現的次數。
3.2利用Python進行詞頻統計
3.2.1 移除停用詞的另一種方法,加if判斷
代碼中用到的一些常用方法:
分組統計:
判斷一個數據框中的某一列的值是否包含一個數組中的任意一個值:
取反:(對布爾值)
四、詞雲繪制
詞雲(Word Cloud):是對文本中詞頻較高的分詞,給與視覺上的突出,形成「關鍵詞渲染」,從而國旅掉大量的文本信息,使瀏覽者一眼掃過就可以領略文本的主旨。
4.1 安裝詞雲工具包
這個地址:https://www.lfd.uci.e/~gohlke/pythonlibs/ ,可以搜到基本上所有的Python庫,進去根據自己的系統和Python的版本進行下載即可。
在python下安裝很方便,在anaconda下安裝費了點勁,最終將詞雲的文件放在C:UsersAdministrator 這個目錄下才安裝成功。
五、美化詞雲(詞雲放入某圖片形象中)
六、關鍵詞提取
結果如下:
七、關鍵詞提取實現
詞頻(Term Frequency):指的是某一個給定的詞在該文檔中出現的次數。
計算公式: TF = 該次在文檔中出現的次數
逆文檔頻率(Inverse Document Frequency):IDF就是每個詞的權重,它的大小與一個詞的常見程度成反比
計算公式:IDF = log(文檔總數/(包含該詞的文檔數 - 1))
TF-IDF(Term Frequency-Inverse Document Frequency):權衡某個分詞是否關鍵詞的指標,該值越大,是關鍵詞的可能性就越大。
計算公式:TF - IDF = TF * IDF
7.1文檔向量化
7.2代碼實戰
Ⅶ 如何使用python中的nltk對哈薩克語或阿拉伯語進行句法分析
如果是英語和西班牙語可以用Inflector。https://pypi.python.org/pypi/Inflector
使用這個模塊可以對名詞的單復數進行轉換及字元操作。
哈薩克語或阿拉伯語,還要進行語法分析這個就沒辦法了。
如果你有語料庫及語言知識的話,其實可以自己去做。
話說阿拉伯語的動詞活用那不是一般的難,這個是我參與的項目
http://www.cjk.org/cjk/arabic/cave/cave.htm
Ⅷ 使用python對txt文本進行分析和提取
實現的方法和詳細的操作步驟如下:
1、首先,打開計算機上的pycharm編輯器,如下圖所示,然後進入下一步。
Ⅸ python數據分析的一般步驟是什麼
下面是用python進行數據分析的一般步驟:
一:數據抽取
從外部源數據中獲取數據
保存為各種格式的文件、資料庫等
使用Scrapy爬蟲等技術
二:數據載入
從資料庫、文件中提取數據,變成DataFrame對象
pandas庫的文件讀取方法
三:數據處理
數據准備:
對DataFrame對象(多個)進行組裝、合並等操作
pandas庫的操作
數據轉化:
類型轉化、分類(面元等)、異常值檢測、過濾等
pandas庫的操作
數據聚合:
分組(分類)、函數處理、合並成新的對象
pandas庫的操作
四:數據可視化
將pandas的數據結構轉化為圖表的形式
matplotlib庫
五:預測模型的創建和評估
數據挖掘的各種演算法:
關聯規則挖掘、回歸分析、聚類、分類、時序挖掘、序列模式挖掘等
六:部署(得出結果)
從模型和評估中獲得知識
知識的表示形式:規則、決策樹、知識基、網路權值
更多技術請關注python視頻教程。
Ⅹ python 能調用fudannlp嗎
有很多好用的中文處理包: Jieba:可以用來做分詞,詞性標注,TextRank HanLP:分詞,命名實體識別,依存句法分析,還有FudanNLP,NLPIR 個人覺得都比NLTK好用~