- 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() 此方法返回最后解码序列的概率。 |