gpt4 book ai didi

java - 用 WordNet 检测专有名词?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:51:51 25 4
gpt4 key购买 nike

我正在使用 JAWS访问 WordNet .给定一个词,有什么方法可以检测它是否是专有名词?看起来这些同义词集有相当粗略的词汇类别。

澄清一下,这些词没有上下文 - 它们只是单独呈现。如果可以想象一个词可以用作普通名词,那么它是可以接受的。所以“标记”很好,因为虽然它可以是某人的名字,但也可以指代一个点。但是,“非洲”不是。

最佳答案

不幸的是,您无法从 WordNet 同义词集中可靠地确定专有名词信息。您要找的是Named Entity Recognition .维基百科页面上有几个可用的 Java 版本的链接。我个人会推荐Stanford NERLingPipe .

更新:

基于单词无上下文的附加约束,您可以使用大写作为主要指标,然后仔细检查 WordNet 以查看该单词是否可以用作名词。也许是这样的:

String word = "foo";
boolean isProperNoun = false;
if (Character.isUpperCase(word.charAt(0))) {
WordNetDatabase database = WordNetDatabase.getFileInstance();
Synset[] synsets = database.getSynsets(word, SynsetType.NOUN);
isProperNoun = synsets.length > 0;
}

这将消除像这样的误报:

If you build it...
As you wish...
Oh Romeo, Romeo...

并且仍然只捕获中的大写名词

In the Book of Mark it says...
Have you heard The Roots or The Who recently?

但仍然会给你误报

Mark the first instance...
Book 'em, Danno.

因为它们可能是,但没有上下文你不知道。

如果您想变得非常棘手,您可以在任何名词的上位词树上进行跟进,看看是否达到了明显的意思,例如“公司”或“国家/地区”。然而,我上次使用 WordNet 时(4 年前),上位词/下位词关系不是很可靠或一致,这可能会导致很多假阴性(并且没有改善我上面提到的假阳性,因为它们完全上下文相关)。

关于java - 用 WordNet 检测专有名词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1967847/

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