導航:首頁 > 編程語言 > python依存句法分析

python依存句法分析

發布時間:2022-09-03 11:13:48

Ⅰ 如何用 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 技術的例子前,有必要介紹些非常基礎的術語。請注意:為了讓文章通俗易懂,這些定義在語言上就不一定考究。

Ⅳ 部分常用分詞工具使用整理

以下分詞工具均能在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好用~

閱讀全文

與python依存句法分析相關的資料

熱點內容
初次認識控制命令完整版 瀏覽:255
雙屏程序員 瀏覽:799
怎麼把兩個文件夾放到一個文件夾裡面 瀏覽:545
命令與征服大神宮 瀏覽:207
php發送簡訊驗證碼 瀏覽:505
前端伺服器如何接收http請求 瀏覽:796
程序員資質查詢 瀏覽:357
程序員被別人開除怎麼辦 瀏覽:888
解壓視頻看一下 瀏覽:129
android仿知乎日報 瀏覽:335
為什麼前端比安卓手機需求大 瀏覽:855
命令行執行關機命令 瀏覽:52
在學校心情不好怎麼解壓 瀏覽:116
我的世界基岩版伺服器怎麼讀取 瀏覽:161
快件命令 瀏覽:853
阿里雲06折伺服器能用嗎 瀏覽:421
h5個人中心源碼 瀏覽:221
下三角矩陣的壓縮存儲 瀏覽:922
招人用什麼app好用 瀏覽:722
飛行控制源碼 瀏覽:185