我有一个输出短语列表的算法(我无法改变)。这些短语旨在成为“主题”。然而,其中一些本身毫无意义。拿这份清单:
is the fear
freesat
are more likely to
first sight
an hour of
sue apple
depression and
itunes
如何过滤掉那些自己没有意义的短语,留下如下列表?
freesat
first sight
sue apple
itunes
这将适用于多种语言的短语集,但英语是优先考虑的事项。
答案 0 :(得分:3)
它必须在语法上可以接受,因为它不能依赖原始句子中的其他词语来提取它;例如它不能以'和'结束。
虽然这仍然是一个未说明的问题,但听起来你需要某种语法检查。我建议你尝试在每个短语中应用词性标注器,编译可接受的POS标签模式列表(例如,以介词结尾的任何内容都是不可接受的)并使用它来过滤你的输入。
答案 1 :(得分:2)
在高级别,似乎只有名词或形容词 - 名词组合的短语会给出更好的结果。
示例:
首先,这个问题可能会像你想要的那样复杂。对于第三方阅读/解决方案,我遇到了:
如果您需要100%的准确度,那么我不会自己编写这样的工具。
但是,如果问题域有限......
我首先会抛出连词,介词,收缩,状态动词等。这是一个相当短的英语列表(看起来非常类似@HappyTimeGopher建议的停用词)。
之后,您可以创建所有可接受的名词和形容词的字典(当然,作为索引结构),并将原始短语中的每个单词与之比较。字典中没有出现并以正确顺序出现的任何内容都可能被抛弃或排名较低。
如果给出100个输入值并想要选择最佳值,这可能很有用。在字典中查找值意味着单词/短语可能很好。
我之前通过从与垂直行业相关的数千个文档构建原始索引来自动生成这样的字典。然后我用SQL和Excel花了几个小时来解决人类容易发现的问题。结果列表并不完美,但它消除了大部分明显愚蠢/毫无意义的术语。
正如你可能已经猜到的那样,虽然检查形容词与名词的顺序会有所帮助,但这些都不是万无一失的。考虑一下“Greatest Hits”与“Car Hits [Wall]”的情况。
专有名词(例如人名)与字典方法不兼容,因为建立给定/姓氏的所有变体的字典可能是不可行的。
总结:
答案 2 :(得分:1)
如果您可以访问这些短语的文本,则可能更容易创建自己的主题标签。
如果做不到这一点,我可能会删除任何包含停用词的内容。请参阅此列表,例如: http://www.ranks.nl/resources/stopwords.html
我不会打破POS标签或任何更强大的东西。
答案 3 :(得分:0)
您似乎可以创建一个过滤掉三件事的列表:
如果你对这些东西进行过滤,你会得到很多。您是否更关注假阴性或阳性?如果假阴性不是一个大问题,那就是我接近它的方式。