gpt4 book ai didi

java - 斯坦福 NER - 无法识别电话号码

转载 作者:行者123 更新时间:2023-11-30 06:52:48 25 4
gpt4 key购买 nike

我正在将 NER 训练为词性为数字的实体类型 Phonenumber。然而,当我测试我训练过的相同数据时,分类器无法识别电话号码。 enter image description here

这是因为电话号码的词性(POS)是数字(CD)吗?

最佳答案

对于此用例,您可能需要使用 regexner

考虑这句话(将其放入phone-number-example.txt):

您可以调用 555 555-5555 联系办公室。

如果您创建一个像这样的regexner规则文件(注意每列都是制表符分隔的)

[0-9]{3}\W[0-9]{3}-[0-9]{4}     PHONE_NUMBER    MISC,NUMBER     1

并运行此命令:

java -Xmx8g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,regexner -regexner.mapping phone_number.rules -file phone-number-example.txt -outputFormat text

它将识别输出 NER 标记中的电话号码。

有一个问题需要注意。您会注意到标记器将“555 555-5555”转换为一个标记。规则文件的第一列是与标记匹配的正则表达式。正则表达式生成器模式是一个以空格分隔的模式列表,与您想要标记的每个标记相匹配。

所以在这个例子中,我制定的规则有一个“\W”来捕获空格。当我使用“\s”等时,该规则不起作用。所以我认为为包含空格的标记编写正则表达式存在问题。通常, token 不包含空格。

因此,您可能需要通过扩展“\W”并排除其他不需要的字符来解决此问题,因为“\W”仅表示非单词字符。此外,您显然可以使我刚刚列出的模式更加复杂并捕获各种电话号码模式。

有关 RegexNER 的更多信息可在此处找到:

http://nlp.stanford.edu/software/regexner.html

关于java - 斯坦福 NER - 无法识别电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42416550/

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