[NLP]OpenNLP語言檢測器的使用
目錄
Language Detector
語言檢測器,屬於分類範疇。即OpenNLP語言檢測器根據模型的能力用ISO-639-3(國際語種代號標準)語言對文件進行分類。模型可以用最大熵模型(Maxent)、感知器(Perceptron)或樸素貝葉斯演算法(Naive Bayes algorithms)訓練。通過用n-gram演算法在規範化文字的上下文中提取詞彙,預設情況下,大小為1、2或3個字。通過擴充套件LanguageDetectorFactory可以定製n-gram的大小、規範化和上下文生成器。
預設的標準化器:
標準化器名稱 | 描述 |
EmojiCharSequenceNormalizer | 表情符號用空格替換 |
UrlCharSequenceNormalizer | URLs 和 E-Mails 用空格替換. |
TwitterCharSequenceNormalizer | 用空格替換標籤和推特的使用者名稱 |
NumberCharSequenceNormalizer | 用空格替換數字序列 |
ShrinkCharSequenceNormalizer | 將重複三次或更多次的字元縮小為只重複兩次。 |
模型訓練
輸入:languageDetector.txt spa A la fecha tres calles bonaerenses recuerdan su nombre (en Ituzaingó, Merlo y Campana). A la fecha, unas 50 naves y 20 aviones se han perdido en esa área particular del océano Atlántico. deu Alle Jahre wieder: Millionen Spanier haben am Dienstag die Auslosung in der größten Lotterie der Welt verfolgt.Alle Jahre wieder: So gelingt der stressfreie Geschenke-Umtausch Artikel per E-Mail empfehlen So gelingt der stressfre ie Geschenke-Umtausch Nicht immer liegt am Ende das unter dem Weihnachtsbaum, was man sich gewünscht hat. srp Већина становника боравила је кућама од блата или шаторима, како би радили на својим удаљеним пољима у долини Јордана и напасали своје стадо оваца и коза. Већина становника говори оба језика. lav Egija Tri-Active procedūru īpaši iesaka izmantot siltākajos gadalaikos, jo ziemā aukstums var šķist arī nepatīkams. Valdība vienojās, ka izmaiņas nodokļu politikā tiek konceptuāli atbalstītas, tomēr deva nedēļu laika Ekonomikas ministrijai, Finanšu ministrijai un Labklājības ministrijai, lai ar vienotu pozīciju atgrieztos pie jautājuma izskatīšanas. spa A la fecha tres calles bonaerenses recuerdan su nombre (en Ituzaingó, Merlo y Campana). A la fecha, unas 50 naves y 20 aviones se han perdido en esa área particular del océano Atlántico. deu Alle Jahre wieder: Millionen Spanier haben am Dienstag die Auslosung in der größten Lotterie der Welt verfolgt.Alle Jahre wieder: So gelingt der stressfreie Geschenke-Umtausch Artikel per E-Mail empfehlen So gelingt der stressfre ie Geschenke-Umtausch Nicht immer liegt am Ende das unter dem Weihnachtsbaum, was man sich gewünscht hat. srp Већина становника боравила је кућама од блата или шаторима, како би радили на својим удаљеним пољима у долини Јордана и напасали своје стадо оваца и коза. Већина становника говори оба језика. lav |
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import opennlp.tools.langdetect.LanguageDetectorModel;
import opennlp.tools.langdetect.LanguageDetectorSampleStream;
import opennlp.tools.langdetect.LanguageSample;
import opennlp.tools.ml.perceptron.PerceptronTrainer;
import opennlp.tools.util.InputStreamFactory;
import opennlp.tools.util.MarkableFileInputStreamFactory;
import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.PlainTextByLineStream;
import opennlp.tools.util.TrainingParameters;
import opennlp.tools.util.model.ModelUtil;
import opennlp.tools.langdetect.LanguageDetectorFactory;
import opennlp.tools.langdetect.LanguageDetectorME;
public class LangdetectTrain {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String rootDir = System.getProperty("user.dir") + File.separator;
String fileResourcesDir = rootDir + "resources" + File.separator;
String modelResourcesDir = rootDir + "opennlpmodel" + File.separator;
String filePath = fileResourcesDir + "languageDetector.txt";
System.out.println(filePath);
//建立一個可標註的輸入資料流
InputStreamFactory inputStreamFactory = new MarkableFileInputStreamFactory(new File(filePath));
//按行輸入文件,一行代表一個文件
ObjectStream<String> lineStream = new PlainTextByLineStream(inputStreamFactory, StandardCharsets.UTF_8);
System.out.println(lineStream.read());
ObjectStream<LanguageSample> sampleStream = new LanguageDetectorSampleStream(lineStream);
//確定訓練引數
TrainingParameters params = ModelUtil.createDefaultTrainingParameters();
//採用感知器演算法訓練
params.put(TrainingParameters.ALGORITHM_PARAM,PerceptronTrainer.PERCEPTRON_VALUE);
params.put(TrainingParameters.CUTOFF_PARAM, 0);
LanguageDetectorFactory factory = new LanguageDetectorFactory();
//訓練模型
LanguageDetectorModel model = LanguageDetectorME.train(sampleStream, params, factory);
//儲存模型
model.serialize(new File(modelResourcesDir+"langdetect.bin"));
}
}
語言型別預測
import java.io.File;
import java.io.IOException;
import opennlp.tools.langdetect.LanguageDetectorModel;
import opennlp.tools.langdetect.Language;
import opennlp.tools.langdetect.LanguageDetectorME;
public class LangdetectPredit {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String rootDir=System.getProperty("user.dir")+File.separator;
String fileResourcesDir=rootDir+"resources"+File.separator;
String modelResourcesDir=rootDir+"opennlpmodel"+File.separator;
String filePath=fileResourcesDir+"languageDetector.txt";
String inputTest_en="A la fecha tres calles bonaerenses recuerdan";
//模型檔案儲存目錄
String LDMFile =modelResourcesDir+ "langdetect.bin";
File modelFile = new File("");
//載入模型
LanguageDetectorModel LDM = new LanguageDetectorModel(modelFile);
LanguageDetectorME myCategorizer = new LanguageDetectorME(LDM);
//預測語言型別
Language bestLanguage = myCategorizer.predictLanguage(inputTest_en);
System.out.println("語言型別為: " + bestLanguage.getLang());
System.out.println("置信度: " + bestLanguage.getConfidence());
//預測語言型別列表
Language[] languages = myCategorizer.predictLanguages(inputTest_en);
}
}
相關文章
- 自然語言處理(NLP)自然語言處理
- GO語言敏感詞檢測Go
- nlp中的傳統語言模型與神經語言模型模型
- 自然語言處理(NLP)簡介 | NLP課程自然語言處理
- NLP神經語言學的12條假設(不是自然語言處理哪個NLP哈)自然語言處理
- 多語言檢測工具實踐
- 自然語言處理(NLP)概述自然語言處理
- 自然語言處理NLP(四)自然語言處理
- NLP 與 NLU:從語言理解到語言處理
- 50行Python程式碼寫一個語言檢測器Python
- 自然語言處理(NLP)系列(一)——自然語言理解(NLU)自然語言處理
- 自然語言處理(NLP)的主要範疇自然語言處理
- 自然語言處理NLP快速入門自然語言處理
- 自然語言處理(NLP)入門指南自然語言處理
- 語音活性檢測器py-webrtcvad安裝使用Web
- 2023nlp影片教程大全 NLP自然語言處理教程 自然語言處理NLP從入門到專案實戰自然語言處理
- 分步指南:教你在20分鐘內使用機器學習建立語言檢測模型!機器學習模型
- 自然語言處理NLP(6)——詞法分析自然語言處理詞法分析
- NLP教程(5) - 語言模型、RNN、GRU與LSTM模型RNN
- Pytorch系列:(六)自然語言處理NLPPyTorch自然語言處理
- 聊天機器人(Chatbot)開發:自然語言處理(NLP)技術棧機器人自然語言處理
- NLP漢語自然語言處理入門基礎知識自然語言處理
- NLP自然語言處理中的hanlp分詞例項自然語言處理HanLP分詞
- NLP需要回歸語言本質,走向語義和計算的融合
- NLP入門之語言模型以及n元文法模型
- 自然語言處理(NLP)路線圖 - kdnuggets自然語言處理
- 地理探測器R語言實現:geodetectorR語言
- JavaScript 獲取瀏覽器的所使用語言JavaScript瀏覽器
- ChineseGLUE:為中文NLP模型定製的自然語言理解基準模型
- 覆蓋40種語言:谷歌釋出多語言、多工NLP新基準XTREME谷歌REM
- 《NLP漢語自然語言處理原理與實踐》學習四自然語言處理
- NLP漢語自然語言處理入門基礎知識介紹自然語言處理
- 自然語言(NLP)發展史及相關體系
- Python 自然語言處理(NLP)工具庫彙總Python自然語言處理
- 多語言架構下如何正確的使用SQL檢視架構SQL
- 自然語言處理 NLP 基本概念大全,讓非技術也能看懂 NLP自然語言處理
- 使用crul庫和R語言的下載器程式R語言
- 語言結構的深層處理是NLP繞不開的坎