gpt4 book ai didi

scala - Scala 中的词性标注

转载 作者:行者123 更新时间:2023-12-04 01:54:28 25 4
gpt4 key购买 nike

我尝试使用斯坦福解析器在 Scala 中对句子进行 POS 标记,如下所示

val lp:LexicalizedParser = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz");
lp.setOptionFlags("-maxLength", "50", "-retainTmpSubcategories")
val s = "I love to play"
val parse :Tree = lp.apply(s)
val taggedWords = parse.taggedYield()
println(taggedWords)

我收到一个错误 类型不匹配;发现:java.lang.String 需要:java.util.List[_ <:edu.stanford.nlp.ling.HasWord] 在线 val 解析:树 = lp.apply(s)

我不知道这是否是正确的做法。有没有其他简单的方法可以在 Scala 中对句子进行 POS 标记?

最佳答案

您可能会考虑使用 FACTORIE 工具包 ( http://github.com/factorie/factorie )。它是一个用于机器学习和图形模型的通用库,恰好包括一套广泛的自然语言处理组件(标记化、标记归一化、形态分析、句子分割、词性标注、命名实体识别、依赖解析、提及发现,共指)。

此外,它完全用 Scala 编写,并在 Apache 许可下发布。

目前文档很少,但将在 future 几个月得到改进。

例如,一旦基于 Maven 的安装完成,您可以在命令行输入:

bin/fac nlp --pos1 --parser1 --ner1

启动一个监听套接字的多线程 NLP 服务器。然后通过将纯文本传输到其套接字号来查询它:
echo "Mr. Jones took a job at Google in New York.  He and his Australian wife moved from New South Wales on 4/1/12." | nc localhost 3228

然后输出是
1       1       Mr.             NNP     2       nn      O
2 2 Jones NNP 3 nsubj U-PER
3 3 took VBD 0 root O
4 4 a DT 5 det O
5 5 job NN 3 dobj O
6 6 at IN 3 prep O
7 7 Google NNP 6 pobj U-ORG
8 8 in IN 7 prep O
9 9 New NNP 10 nn B-LOC
10 10 York NNP 8 pobj L-LOC
11 11 . . 3 punct O

12 1 He PRP 6 nsubj O
13 2 and CC 1 cc O
14 3 his PRP$ 5 poss O
15 4 Australian JJ 5 amod U-MISC
16 5 wife NN 6 nsubj O
17 6 moved VBD 0 root O
18 7 from IN 6 prep O
19 8 New NNP 9 nn B-LOC
20 9 South NNP 10 nn I-LOC
21 10 Wales NNP 7 pobj L-LOC
22 11 on IN 6 prep O
23 12 4/1/12 NNP 11 pobj O
24 13 . . 6 punct O

当然,所有这些功能也有一个编程 API。
import cc.factorie._
import cc.factorie.app.nlp._
val doc = new Document("Education is the most powerful weapon which you can use to change the world.")
DocumentAnnotatorPipeline(pos.POS1).process(doc)
for (token <- doc.tokens)
println("%-10s %-5s".format(token.string, token.posLabel.categoryValue))

将输出:
Education  NN   
is VBZ
the DT
most RBS
powerful JJ
weapon NN
which WDT
you PRP
can MD
use VB
to TO
change VB
the DT
world NN
. .

关于scala - Scala 中的词性标注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com