根据标记的句子标记句子

时间:2018-10-30 02:41:29

标签: python nlp tagging

我正在创建一个能够基于先前标记的句子标记句子的系统。我有一个语料库,其结构为已知问题

已知问题:

  

city_name 西班牙最受欢迎的城市是什么?

     

amount_of_people 市中心有多少人?

新任务:

  

意大利最受欢迎的城市是哪里?

     

体育场有多少人?

     

离纽约最近的城市是什么?

标签示例:

  

城市名称

     

amount_of_people

所需结果:

  

city_name 意大利最受欢迎的城市是什么?

     

amount_of_people 体育场内有多少人?

     

city_name 离纽约最近的城市是什么?

我总共有30个标签和350个Senteces。 是否有任何python框架或已知算法来分析语料库并基于语料库标记新句子?

1 个答案:

答案 0 :(得分:0)

通常,这应该被视为分类的机器学习任务。从朴素贝叶斯到多层感知器再到基于softmax的DNN,您可以使用任意数量的approaches。我强烈建议对上述任务使用上述方法之一,但是鉴于您只有350个问题,我不知道分类器是否可以在不做实验的情况下学习到这么少的数据。

但是,如果您希望使用基于规则的方法来解决此问题,建议您使用dependency parsing。这是基于以下假设:您的所有数据都由语法形式正确的问题组成,并且标签和问题之间存在语义关系。

让我们使用斯坦福依赖性解析器here来解决问题:What is the nearest city to New York?

UNIVERSAL DEPENDENCIES:

root(ROOT-0, What-1)
cop(What-1, is-2)
det(city-5, the-3)
amod(city-5, nearest-4)
nsubj(What-1, city-5)
case(York-8, to-6)
compound(York-8, New-7)
nmod(city-5, York-8)

如您所见,nsubj(标称主题)向我们介绍了“ What”和“ city”之间的关系(更多地了解了依赖项here)。因此,每次您将“城市”作为“内容”的nsubj(例如)时,您可以为问题分配city_name标签。

类似地,如果“人”在问题的nsubj中(而amod中的“很多”),则可以为该问题分配amount_of_people标签。

您必须以类似的方式观察并找到30个标签中每个标签的最佳依赖关系规则,这绝对可以解决问题。