识别句子中的单词上下文

时间:2014-11-14 15:00:04

标签: nlp data-mining nltk semantics

我创建了分类器来对名词,形容词,给定句子中的命名实体进行分类。我使用大型维基百科数据集进行分类。

喜欢:

亚伯拉罕林肯出生的地方?

所以分类器会给出这么短的结果 - word - class

  • 其中 - 问题
  • 亚伯拉罕·林肯 - 人物,电影,书籍(因为分类器在所有类别中都找到了亚伯拉罕·林肯)
  • 出生时间

当泰坦尼克号被释放?

  • when - question
  • 泰坦尼克号 - 歌曲,电影,车辆,游戏(泰坦尼克号 分类在所有这些类别)

有没有办法确定单词的确切上下文?

请参阅:

  1. 词义消歧在这里没有用。因为在能帮助的句子中可能没有附近的文字
  2. 使用wordnet或sysnet的Lesk算法也无济于事。因为它假设单词Bank lesk algo将表现得像这样

    ========测试simple_lesk ===========

    测试simple_lesk()...

    背景:我去银行存钱了

    Sense:Synset('depository_financial_institution.n.01')

    定义:接受存款并将资金用于贷款活动的金融机构

    使用POS ...

    测试simple_lesk()

    背景:河岸里到处都是死鱼

    Sense:Synset('bank.n.01')

    定义:倾斜的土地(特别是水体旁边的斜坡)

  3. 此处有bank字,建议为financial instituteslopping land。虽然在我的情况下,我已经得到Titanic这样的预测,但它可以是moviegame

    我想知道除了Lesk algobaseline algotraditional word sense disambiguation之外是否有其他方法可以帮助我确定哪个类对于特定关键字是正确的?

    泰坦尼克号 -

1 个答案:

答案 0 :(得分:2)

感谢您使用pywsd examples。关于wsd,还有很多其他的变种,我自己在空闲时间自己编码。所以,如果你想看到它的改进,请加入我编写开源工具的编码=)

同时,您会发现以下与您的任务更相关的技术,例如:

上述技术通常包括几个子任务,例如:

基本上你要求的是一个用于语言/文本处理的NP完整AI系统的工具,所以我真的不认为这样的工具存在。也许是IBM Watson。

如果您正在寻找要查看的字段,那么该字段就在那里,但如果您正在查看工具,则很可能wikification工具最接近您可能需要的工具。 (http://nlp.cs.rpi.edu/paper/WikificationProposal.pdf