我有一组keywords
,我知道这只与我的申请有关。但是这些关键字在不同的环境中可能具有不同的含义。只有一个含义对我有用,我事先就知道了。我怎样才能在运行时disambiguate
表达它们的含义?
我尝试在市场上使用不同的Word Sense Disambiguation
方法,但这些方法效果不佳?
谁能在这帮助我?
答案 0 :(得分:2)
词义消歧是一个开放的问题,因此任何方法的成功都将在很大程度上取决于您的特定数据。如果您有足够的上下文围绕在运行时提供的关键字,您可以计算tf-idf(http://en.wikipedia.org/wiki/Tf%E2%80%93idf)并将其与您感兴趣的词义的预先建立的tf-idf进行比较:当然,这意味着拥有只有你感兴趣的感觉的训练数据。然后你可以比较两个tf-idf向量,如果它们相似(http://en.wikipedia.org/wiki/Cosine_similarity)足够根据你可以通过实验建立的某个阈值,那么你可以得出结论它们是相同的意义。祝你好运。
答案 1 :(得分:2)
消歧是根据上下文从术语(单词/搭配或keyword
)的预先指定的集合中选择一个含义的任务。这里的主要思想是计算每个含义和上下文之间的相似性,然后选择最接近的含义。在含义上进行先验分布是非常有用的 - 例如,每个含义用于该术语的频率;顺便说一句,大多数常识算法都是一个很好的基线。
因此,您的任务是设置先验分布,定义相似性度量,以及选择上下文。通常只考虑当地情境就足够了 - 每边有3到5个最接近的单词。 相似性度量在很大程度上取决于您的词典(每个术语的含义集)和您的域名。上面提出了一个例子 - 余弦超过tf-idf向量。
有了这个,你可以创建一个二元分类器;理想情况下,训练机器学习就像Logistic回归一样,如果你有列车设置,你知道每个关键词是否具有有用的意义。 如果你只有正面的例子(似乎是user1981700所假设的),那么你就会遇到类似one class classifiction的东西,这通常会有更差的表现。
希望这会有所帮助。如果您提供有关您的域名和字典类型的更多详细信息,那么考虑更合适的解决方案会更容易。