Python自然語言處理工具小結
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.StringReader; import java.util.Collections; import opennlp.tools.namefind.NameFinderME; import opennlp.tools.namefind.NameSample; import opennlp.tools.namefind.NameSampleDataStream; import opennlp.tools.namefind.TokenNameFinderModel; import opennlp.tools.util.ObjectStream; import opennlp.tools.util.PlainTextByLineStream; import opennlp.tools.util.featuregen.AggregatedFeatureGenerator; import opennlp.tools.util.featuregen.PreviousMapFeatureGenerator; import opennlp.tools.util.featuregen.TokenClassFeatureGenerator; import opennlp.tools.util.featuregen.TokenFeatureGenerator; import opennlp.tools.util.featuregen.WindowFeatureGenerator; /** * 中文命名實體識別模型訓練元件 * * @author ddlovehy * */ public class NamedEntityMultiFindTrainer { // 預設引數 private int iterations = 80; private int cutoff = 5; private String langCode = "general"; private String type = "default"; // 待設定的引數 private String nameWordsPath; // 命名實體詞庫路徑 private String dataPath; // 訓練集已分詞語料路徑 private String modelPath; // 模型儲存路徑 public NamedEntityMultiFindTrainer() { super(); // TODO Auto-generated constructor stub } public NamedEntityMultiFindTrainer(String nameWordsPath, String dataPath, String modelPath) { super(); this.nameWordsPath = nameWordsPath; this.dataPath = dataPath; this.modelPath = modelPath; } public NamedEntityMultiFindTrainer(int iterations, int cutoff, String langCode, String type, String nameWordsPath, String dataPath, String modelPath) { super(); this.iterations = iterations; this.cutoff = cutoff; this.langCode = langCode; this.type = type; this.nameWordsPath = nameWordsPath; this.dataPath = dataPath; this.modelPath = modelPath; } /** * 生成定製特徵 * * @return */ public AggregatedFeatureGenerator prodFeatureGenerators() { AggregatedFeatureGenerator featureGenerators = new AggregatedFeatureGenerator( new WindowFeatureGenerator(new TokenFeatureGenerator(), 2, 2), new WindowFeatureGenerator(new TokenClassFeatureGenerator(), 2, 2), new PreviousMapFeatureGenerator()); return featureGenerators; } /** * 將模型寫入磁碟 * * @param model * @throws Exception */ public void writeModelIntoDisk(TokenNameFinderModel model) throws Exception { File outModelFile = new File(this.getModelPath()); FileOutputStream outModelStream = new FileOutputStream(outModelFile); model.serialize(outModelStream); } /** * 讀出標註的訓練語料 * * @return * @throws Exception */ public String getTrainCorpusDataStr() throws Exception { // TODO 考慮入持久化判斷直接載入標註資料的情況 以及增量式訓練 String trainDataStr = null; trainDataStr = NameEntityTextFactory.prodNameFindTrainText( this.getNameWordsPath(), this.getDataPath(), null); return trainDataStr; } /** * 訓練模型 * * @param trainDataStr * 已標註的訓練資料整體字串 * @return * @throws Exception */ public TokenNameFinderModel trainNameEntitySamples(String trainDataStr) throws Exception { ObjectStream<NameSample> nameEntitySample = new NameSampleDataStream( new PlainTextByLineStream(new StringReader(trainDataStr))); System.out.println("**************************************"); System.out.println(trainDataStr); TokenNameFinderModel nameFinderModel = NameFinderME.train( this.getLangCode(), this.getType(), nameEntitySample, this.prodFeatureGenerators(), Collections.<String, Object> emptyMap(), this.getIterations(), this.getCutoff()); return nameFinderModel; } /** * 訓練元件總呼叫方法 * * @return */ public boolean execNameFindTrainer() { try { String trainDataStr = this.getTrainCorpusDataStr(); TokenNameFinderModel nameFinderModel = this .trainNameEntitySamples(trainDataStr); // System.out.println(nameFinderModel); this.writeModelIntoDisk(nameFinderModel); return true; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } } }
相關推薦
Python自然語言處理工具小結
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.StringReader; import java.util.Collections; impor
Python自然語言處理(NLP)工具小結
Python 的幾個自然語言處理工具 自然語言處理(Natural Language Processing,簡稱NLP)是人工智慧的一個子域。自然語言處理的應用包括機器翻譯、情感分析、智慧問答、資訊提取、語言輸入、輿論分析、知識圖譜等方面。也是深度學習的一個分
Python中呼叫自然語言處理工具HanLP手記
HanLP方法封裝類: 1. # -*- coding:utf-8 -*- 2. # Filename: main.py 3. 4.from jpype import * 5. 5.startJVM(getDefaultJVMPath(), "-Djava.class.path=C:\h
斯坦福自然語言處理工具python環境配置
斯坦福自然語言處理工具python環境配置 1. 簡介 Stanford nlp group 是世界知名的自然語言處理研究組,該組的研究內容涵蓋了從基本的計算語言原理研究到NLP的關鍵應用技術。其中,該組所開發的coreNLP工具被廣泛應用,該工具提供了分詞、詞性標註、語
Python 自然語言處理(NLP)工具庫彙總
6.spaCy 這是一個商業的開源軟體。結合了Python 和Cython 優異的 NLP 工具。是快速的,最先進的自然語言處理工具。 網站: 安裝: pip install spacy 7.Polyglot Polyglot 支援大規模多語言應用程式的處理。它支援165種語言的分詞,196中語言的辨識,
Python 2.7下下載並安裝nltk (自然語言處理工具包)
>>>import nltk >>>nltk.download() 下載器上的Collection選項卡顯示軟體包如何被打包分組。選擇book標記所在行,然後選擇下載路徑(注意不要安裝到二級或三級目錄下,最好安裝到D盤或C盤的根目錄下,否則會報錯, 我這裡地址就是不
自然語言處理工具包HanLP的Python介面
pyhanlp: Python interfaces for HanLP HanLP的Python介面,支援自動下載與升級HanLP,相容py2、py3。 安裝 pip install pyhanlp 使用命令hanlp來驗證安裝,如因網路等原因自動安裝HanL
自然語言處理工具python呼叫hanlp的方法步驟
Python呼叫hanlp的方法此前有分享過,本篇文章分享自“逍遙自在017”的部落格,個別處有修改,閱讀時請注意! 1.首先安
NLP-python 自然語言處理01
count ems odin 頻率分布 str sep mon location don 1 # -*- coding: utf-8 -*- 2 """ 3 Created on Wed Sep 6 22:21:09 2017 4 5 @author: A
Python自然語言處理1
cmd 輸入 函數調用 down load src 選擇 分享 cnblogs 首先,進入cmd 輸入pip install的路徑 隨後開始下載nltk的包 一、準備工作 1、下載nltk 我的之前因為是已經下載好了 ,我現在用的參考書是Python自然語言處理這本書,最
Python自然語言處理 Chapter 1
col ont otl python import 搜索 text2 div load() from __future__ import division import nltk nltk.download() from nltk.book import * #搜索文本
Python自然語言處理筆記【二】文本分類之監督式分類的細節問題
重要 探索 基於 font 產生 com 分類器 保持 聯合 一、選擇正確的特征 1.建立分類器的工作中如何選擇相關特征,並且為其編碼來表示這些特征是首要問題。 2.特征提取,要避免過擬合或者欠擬合 過擬合,是提供的特征太多,使得算法高度依賴訓練數據的特性,而對於一般化的
Python | 自然語言處理 (一)
res sent 處理 簡單的 *** ima examples 表示 rds 小白博主最近想參加一個關於NLP的比賽,於是入坑自然語言處理,想借博客一邊學習,一邊整理 首先安裝庫nltk,直接pip install nltk即可 1 from nltk.book imp
自然語言處理工具包 HanLP在 Spring Boot中的應用
本文共 782字,閱讀大約需要 2分鐘 ! 概 述 HanLP 是基於 Java開發的 NLP工具包,由一系列模型與演算法組成,目標是普及自然語言處理在生產環境中的應用。而且 HanLP具備功能完善、效能高效、架構清晰、語料時新、可自定義的特點,因此十分好上手,本文就結合 Spring Bo
《精通Python自然語言處理》高清中文版PDF+高清英文版PDF+源代碼
http 自然語言 下載 pdf color 語言 源代碼 書籍 https 下載:https://pan.baidu.com/s/1p9MgH2HDTGfUmWx8jHRsxw 《精通Python自然語言處理》高清中文版PDF+高清英文版PDF+源代碼 高清中文版PDF,
Hanlp自然語言處理工具的使用演練
Hanlp是由一系列模型與演算法組成的工具包,目標是普及自然語言處理在生產環境中的應用。Hanlp具備功能完善、效能高效、架構清洗、語料時新、可自定義的特點;提供詞法分析(中文分詞、磁性標註、命名實體識別)、句法分析、文字分類和情感分析等功能。 本篇將使用者輸入的語句根據詞庫進行分詞、關鍵詞提取、摘要提取、
Python自然語言處理—統計詞頻
一 資料的預處理 本文所有的例子我都將使用中文文字進行,所以在分析前需要對中文的文字進行一個預處理的過程(暫時只用的分詞,去除停用詞的部分後面介紹) # -*- coding:utf-8 -*- from nltk import FreqDist import jieba import py
python自然語言處理-—安裝NLTK
安裝Anaconda後,進入Prompt介面 依次輸入 easy_install pip pip install pyyaml nltk 結果如下 下載nltk中的資料集 import nltk nltk.download() 選擇book文字集合下載相關資料集
精通Python自然語言處理 pdf 下載
自然語言處理(NLP)是有關計算語言學與人工智慧的研究領域之一。NLP主要關注人機互動,它提供了計算機和人類之間的無縫互動,使得計算機在機器學習的幫助下理解人類語言。 本書詳細介紹如何使用Python執行各種自然語言處理(NLP)任務,並幫助讀者掌握利用Python設計和構建基於NLP的應用的
哈工大自然語言處理工具pyltp的本地安裝方法
在研究中發現,哈工大的LTP在分詞、實體識別等方面的效果甚至要優於中科院ICTCLAS,而且LTP還具備了目前在中文資訊處理領域較為罕見的語義角色標註(SRL)功能。以前我都是直接以get方式通過LTP-Cloud去使用的,但是由於受限於網速,當語料較大時 執行速度較慢。於是近期考慮在自己的機子