我正在创建一个能够基于先前标记的句子标记句子的系统。我有一个语料库,其结构为已知问题。
已知问题:
city_name 西班牙最受欢迎的城市是什么?
amount_of_people 市中心有多少人?
新任务:
意大利最受欢迎的城市是哪里?
体育场有多少人?
离纽约最近的城市是什么?
标签示例:
城市名称
amount_of_people
所需结果:
city_name 意大利最受欢迎的城市是什么?
amount_of_people 体育场内有多少人?
city_name 离纽约最近的城市是什么?
我总共有30个标签和350个Senteces。 是否有任何python框架或已知算法来分析语料库并基于语料库标记新句子?
答案 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个标签中每个标签的最佳依赖关系规则,这绝对可以解决问题。