patrickschur/stanford-nlp-tagger

Stanford 自然语言处理库的 PHP 封装。支持词性标注和 CRF 分类器。

v0.3.0 2020-08-02 09:05 UTC

This package is auto-updated.

Last update: 2024-08-29 03:58:12 UTC


README

Version Total Downloads Minimum PHP Version License

Stanford 自然语言处理库的 PHP 封装。支持词性标注和 CRF 分类器。自动加载正确的包并检测给定文本的语言。

要求

  • 您必须安装 Java 版本 1.8 或更高版本。
  • 下载正确的包并将它们解压缩到目录中。(脚本会自动加载正确的包,无论它们在哪里。)

使用 Composer 安装

$ composer require patrickschur/stanford-nlp-tagger

示例

  • 下载词性标注所需的包,英文版请在此处下载,其他语言如阿拉伯语、中文、法语、西班牙语和德语请在此处下载。
  • 将(.zip)包解压缩到您的目录中。(请勿重命名包,除非您想手动添加这些包。)
$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()

输出格式有三种(xmlslashTagstsv

$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 

贡献

欢迎您为此存储库做出贡献。任何帮助都受欢迎。