日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]1.環(huán)境搭建?????import nltk? ??nltk.download("averaged_perceptron_tagger")2、下載以下幾個文件stanford-parser-full-

1.環(huán)境搭建?????import nltk? ??nltk.download("averaged_perceptron_tagger")

2、下載以下幾個文件

stanford-parser-full-2015-12-09??stanford-ner-2015-12-09

stanford-segmenter-2015-12-09?stanford-postagger-full-2015-12-09?

? 修改過的nltk?nltk-develop?????stanford-chinese-corenlp-2018-02-27-models??

前四個包是斯坦福提供的分析資源包,該工具的使用依賴于JAVA環(huán)境需要裝JDK 1.8 在此不贅述,nltk_develop,需要運行其中的setup.py文件,忘了說了,我的環(huán)境是python 36,運行完成后在PYTHON36安裝目錄下的Lib文件夾里面的site-packages里面生成和nltk相關(guān)的3個文件夾,將??修改過的nltk下載下來之后覆蓋即可,最后一個chinese-corenlp則是資源文件

3、 斯坦福詞性標(biāo)注器安裝部署

????3.2、 斯坦福分詞操作

# -*- coding: utf-8 -*-
from nltk.tokenize.stanford_segmenter import StanfordSegmenter
data_dir = "D:\NLTK\stanford-segmenter-2015-12-09"
segmenter = StanfordSegmenter(
    java_class='edu.stanford.nlp.ie.crf.CRFClassifier',
    path_to_jar=data_dir + "\stanford-segmenter-3.6.0.jar",
    path_to_slf4j=data_dir+"\slf4j-api.jar",
    path_to_sihan_corpora_dict=data_dir+"\data",
    path_to_model=data_dir+"\data\pku.gz",
    path_to_dict=data_dir+"\data\dict-chris6.ser.gz"
    )
sentence = u"這是斯坦福中文分詞器測試"
result = segmenter.segment(sentence)
print(result)

總結(jié)一定要注意path_to_slf4j路徑,否則會出現(xiàn)java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory,錯誤

3.3 StanfordNERTagger? 英文命名實體識別

# -*- coding: utf-8 -*-
from nltk.tag import StanfordNERTagger
eng_tagger = StanfordNERTagger(
    model_filename=r'D:NLTKstanford-ner-2015-12-09classifiersenglish.all.3class.distsim.crf.ser.gz',
    path_to_jar=r'D:NLTKstanford-ner-2015-12-09stanford-ner.jar',
)
print(eng_tagger.tag('Rami Eid is studying at Stony Brook University in NY'.split()))
總結(jié):StanfordNERTagger沒有參數(shù)接收path_to_slf4j參數(shù),還是出現(xiàn)了java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory錯誤
修正方式:修改文件 C:Python36Libsite-packagesnltktagstanford.py文件的函數(shù)tag_sents在? ? ? stanpos_output, stderr 賦值處之前添加
_CLASS_PATH = "."
        if os.environ.get('CLASSPATH') is not None:
            _CLASS_PATH = os.environ.get('CLASSPATH')
        stanpos_output, stderr = java(cmd, classpath=(self._stanford_jar, _CLASS_PATH), stdout=PIPE, stderr=PIPE)
如果之前已經(jīng)覆蓋過Lib里面的site-packages即可跳過

當(dāng)前,這個方式的前提是在你電腦的環(huán)境變量上CLASSPATH添加slf4j-api.jar的絕對路徑即可

3.4中文命名實體

#對于chinese.misc.distsim.crf.ser.gz與chinese.misc.distsim.prop文件,將stanford-chinese-corenlp-2016-10-31-models.jar解壓可以找到。

# -*- coding: utf-8 -*-
from nltk.tag import StanfordNERTagger
result='四川省 成都 信息 工程 大學(xué) 我 在 博客 園 開 了 一個 博客 , 我 的 博客 名叫 伏 草 惟 存 , 寫 了 一些 自然語言 處理 的 文章 。rn'
chi_tagger = StanfordNERTagger(model_filename=r'D:NLTKstanford-chinese-corenlp-2018-02-27-modelsedustanfordnlpmodelsnerchinese.misc.distsim.crf.ser.gz',
                               path_to_jar=r'D:NLTKstanford-ner-2015-12-09stanford-ner.jar')
for word, tag in chi_tagger.tag(result.split()):
    print(word,tag)
3.5詞性標(biāo)注

StanfordPOSTagger 中文詞性標(biāo)注

# -*- coding: utf-8 -*-
from nltk.tag import StanfordPOSTagger
chi_tagger = StanfordPOSTagger(model_filename=r'D:NLTKstanford-postagger-full-2015-12-09modelschinese-distsim.tagger',
                             path_to_jar=r'D:NLTKstanford-postagger-full-2015-12-09stanford-postagger.jar')
result= '四川省 成都 信息 工程 大學(xué) 我 在 博客 園 開 了 一個 博客 , 我 的 博客 名叫 伏 草 惟 存 , 寫 了 一些 自然語言 處理 的 文章 。rn'
print(chi_tagger.tag(result.split()))

3.6中文語法分析

# -*- coding: utf-8 -*-
from nltk.parse.stanford import StanfordParser
chi_parser = StanfordParser(r"D:NLTKstanford-parser-full-2015-12-09stanford-parser.jar",
                            r"D:NLTKstanford-parser-full-2015-12-09stanford-parser-3.6.0-models.jar",
                            r"D:NLTKstanford-chinese-corenlp-2018-02-27-modelsedustanfordnlpmodelslexparserchinesePCFG.ser.gz")
sent = u'北海 已 成為 中國 對外開放 中 升起 的 一 顆 明星'
print(list(chi_parser.parse(sent.split())))

3.7 中文依存句法分析

# -*- coding: utf-8 -*-
from nltk.parse.stanford import StanfordDependencyParser
chi_parser = StanfordDependencyParser(r"D:NLTKstanford-parser-full-2015-12-09stanford-parser.jar",
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? r"D:NLTKstanford-parser-full-2015-12-09stanford-parser-3.6.0-models.jar",
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? r"D:NLTKstanford-chinese-corenlp-2018-02-27-modelsedustanfordnlpmodelslexparserchinesePCFG.ser.gz")
res = list(chi_parser.parse(u'四川 已 成為 中國 西部 對外開放 中 升起 的 一 顆 明星'.split()))
for row in res[0].triples():
? ? print(row)

說明所有資料整理自?

【NLP】干貨!Python NLTK結(jié)合stanford NLP工具包進(jìn)行文本處理根據(jù)自己的環(huán)境進(jìn)行的修改,上述代碼可以正常運行
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉