- OpenNLP 教程
- OpenNLP - 首頁
- OpenNLP - 概述
- OpenNLP - 環境配置
- OpenNLP - 參考 API
- OpenNLP - 句子檢測
- OpenNLP - 分詞
- 命名實體識別
- OpenNLP - 詞性標註
- OpenNLP - 句子分析
- OpenNLP - 句子塊劃分
- OpenNLP - 命令列介面
- OpenNLP 有用資源
- OpenNLP - 快速指南
- OpenNLP - 有用資源
- OpenNLP - 討論
OpenNLP - 參考 API
本章將討論我們將在本教程後續章節中使用的類和方法。
句子檢測
SentenceModel 類
此類表示用於檢測給定原始文字中句子的預定義模型。此類屬於包opennlp.tools.sentdetect。
此類的建構函式接受句子檢測模型檔案 (en-sent.bin) 的InputStream 物件。
SentenceDetectorME 類
此類屬於包opennlp.tools.sentdetect,它包含用於將原始文字分割成句子 的方法。此類使用最大熵模型來評估字串中的句子結束字元,以確定它們是否表示句子的結尾。
以下是此類的重要方法。
| 序號 | 方法和描述 |
|---|---|
| 1 |
sentDetect() 此方法用於檢測傳遞給它的原始文字中的句子。它接受一個 String 變數作為引數,並返回一個包含給定原始文字中句子的 String 陣列。 |
| 2 |
sentPosDetect() 此方法用於檢測給定文字中句子的位置。此方法接受一個表示句子的字串變數,並返回一個型別為Span的物件陣列。 名為Span的opennlp.tools.util包中的類用於儲存集合的起始和結束整數。 |
| 3 |
getSentenceProbabilities() 此方法返回與最近對sentDetect()方法的呼叫相關的機率。 |
分詞
TokenizerModel 類
此類表示用於分詞給定句子的預定義模型。此類屬於包opennlp.tools.tokenizer。
此類的建構函式接受分詞模型檔案 (entoken.bin) 的InputStream 物件。
類
為了執行分詞,OpenNLP 庫提供了三個主要的類。所有三個類都實現了名為Tokenizer的介面。
| 序號 | 類和描述 |
|---|---|
| 1 |
SimpleTokenizer 此類使用字元類對給定的原始文字進行分詞。 |
| 2 |
WhitespaceTokenizer 此類使用空格對給定文字進行分詞。 |
| 3 |
TokenizerME 此類將原始文字轉換成單獨的標記。它使用最大熵來做出決策。 |
這些類包含以下方法。
| 序號 | 方法和描述 |
|---|---|
| 1 |
tokenize() 此方法用於對原始文字進行分詞。此方法接受一個 String 變數作為引數,並返回一個字串陣列(標記)。 |
| 2 |
sentPosDetect() 此方法用於獲取標記的位置或跨度。它接受以字串形式表示的句子(或)原始文字,並返回一個型別為Span的物件陣列。 |
除了上述兩種方法之外,TokenizerME類還具有getTokenProbabilities()方法。
| 序號 | 方法和描述 |
|---|---|
| 1 |
getTokenProbabilities() 此方法用於獲取與最近對tokenizePos()方法的呼叫相關的機率。 |
命名實體識別
TokenNameFinderModel 類
此類表示用於查詢給定句子中命名實體的預定義模型。此類屬於包opennlp.tools.namefind。
此類的建構函式接受命名查詢器模型檔案 (enner-person.bin) 的InputStream 物件。
NameFinderME 類
此類屬於包opennlp.tools.namefind,它包含用於執行 NER 任務的方法。此類使用最大熵模型來查詢給定原始文字中的命名實體。
| 序號 | 方法和描述 |
|---|---|
| 1 |
find() 此方法用於檢測原始文字中的名稱。它接受一個表示原始文字的 String 變數作為引數,並返回一個型別為 Span 的物件陣列。 |
| 2 |
probs() 此方法用於獲取最後解碼序列的機率。 |
詞性標註
POSModel 類
此類表示用於標註給定句子詞性的預定義模型。此類屬於包opennlp.tools.postag。
此類的建構函式接受詞性標註器模型檔案 (enpos-maxent.bin) 的InputStream 物件。
POSTaggerME 類
此類屬於包opennlp.tools.postag,用於預測給定原始文字的詞性。它使用最大熵來做出決策。
| 序號 | 方法和描述 |
|---|---|
| 1 |
tag() 此方法用於為句子的標記分配詞性標籤。此方法接受一個標記陣列 (String) 作為引數,並返回一個標籤陣列。 |
| 2 |
getSentenceProbabilities() 此方法用於獲取最近標註句子的每個標籤的機率。 |
句子分析
ParserModel 類
此類表示用於分析給定句子的預定義模型。此類屬於包opennlp.tools.parser。
此類的建構函式接受解析器模型檔案 (en-parserchunking.bin) 的InputStream 物件。
Parser Factory 類
此類屬於包opennlp.tools.parser,用於建立解析器。
| 序號 | 方法和描述 |
|---|---|
| 1 |
create() 這是一個靜態方法,用於建立解析器物件。此方法接受解析器模型檔案的 Filestream 物件。 |
ParserTool 類
此類屬於opennlp.tools.cmdline.parser包,用於分析內容。
| 序號 | 方法和描述 |
|---|---|
| 1 |
parseLine() ParserTool類的此方法用於在 OpenNLP 中分析原始文字。此方法接受:
|
塊劃分
ChunkerModel 類
此類表示用於將句子分成較小塊的預定義模型。此類屬於包opennlp.tools.chunker。
此類的建構函式接受chunker模型檔案 (enchunker.bin) 的InputStream 物件。
ChunkerME 類
此類屬於名為opennlp.tools.chunker的包,用於將給定句子分成較小的塊。
| 序號 | 方法和描述 |
|---|---|
| 1 |
chunk() 此方法用於將給定句子分成較小的塊。它接受句子的標記和詞性標籤作為引數。 |
| 2 |
probs() 此方法返回最後解碼序列的機率。 |