patrickschur / stanford-nlp-tagger
Stanford 自然语言处理库的 PHP 封装。支持词性标注和 CRF 分类器。
v0.3.0
2020-08-02 09:05 UTC
Requires
- php: ^7
- patrickschur/language-detection: ^3
README
Stanford 自然语言处理库的 PHP 封装。支持词性标注和 CRF 分类器。自动加载正确的包并检测给定文本的语言。
要求
- 您必须安装 Java 版本 1.8 或更高版本。
- 下载正确的包并将它们解压缩到目录中。(脚本会自动加载正确的包,无论它们在哪里。)
使用 Composer 安装
$ composer require patrickschur/stanford-nlp-tagger
示例
$pos = new \StanfordTagger\POSTagger(); $pos->tag('My dog also likes eating sausage.');
结果
My_PRP$ dog_NN also_RB likes_VBZ eating_JJ sausage_NN ._.
setOutputFormat()
输出格式有三种(xml,slashTags 和 tsv)
$pos = new \StanfordTagger\POSTagger(); $pos->setOutputFormat(StanfordTagger::OUTPUT_FORMAT_XML); $pos->tag('My dog also likes eating sausage.');
结果以 XML 格式
<?xml version="1.0" encoding="UTF-8"?> <pos> <sentence id="0"> <word wid="0" pos="PRP$">My</word> <word wid="1" pos="NN">dog</word> <word wid="2" pos="RB">also</word> <word wid="3" pos="VBZ">likes</word> <word wid="4" pos="JJ">eating</word> <word wid="5" pos="NN">sausage</word> <word wid="6" pos=".">.</word> </sentence> </pos>
或使用
$pos->setOutputFormat(StanfordTagger::OUTPUT_FORMAT_TSV);
for
My PRP$
dog NN
also RB
likes VBZ
eating JJ
sausage NN
. .
setModel(), setJarArchive() 和 setClassfier()
所有包都会自动加载,但如果您想更改,也可以手动设置。
$pos = new \StanfordTagger\POSTagger(); $pos->setModel(__DIR__ . '/stanford-postagger-full-2018-10-16/models/english-bidirectional-distsim.tagger'); $pos->setJarArchive(__DIR__ . '/stanford-postagger-full-2018-10-16/stanford-postagger.jar');
CRF 分类器
示例
$ner = new \StanfordTagger\CRFClassifier(); $ner->tag('Albert Einstein was a theoretical physicist born in Germany.');
Albert/PERSON Einstein/PERSON was/O theoretical/O physicist/O born/O in/O Germany/LOCATION./O
贡献
欢迎您为此存储库做出贡献。任何帮助都受欢迎。