如何使用神经模型从消息中检测源和目的地

vig*_*esh -5 python nlp neural-network text-classification ner

我想从给定的文本中提取原点和目的地.

例如,

I am travelling from London to New York.
I am flying to Sydney from Singapore.
Run Code Online (Sandbox Code Playgroud)

起源 - >伦敦,新加坡.目的地 - >悉尼,纽约.

NER只提供位置名称,但无法获取原点和目的地.

是否可以训练神经模型来检测它?

我试过训练神经网络来对文本进行分类,比如

{"tag": "Origin",
     "patterns": ["Flying from ", "Travelling from ", "My source is", ]
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我们可以将文本分类为原点,但我也需要获取值(在这种情况下,伦敦,新加坡).

反正我们能做到吗?

Mik*_*kov 5

好吧,正如其他人评论NN可能是一个开销,但他们仍然可以使用.要使用NN解决此问题,您可以按照以下步骤操作:

  1. 收集表格(文本,原产地,目的地)的培训数据,例如[("我从伦敦到纽约旅行","伦敦","纽约"),("我从新加坡飞往悉尼". ,"悉尼","新加坡")].您的NN可能需要大量数据才能足够准确.
  2. 使用经过训练的word2vec表示(例如手套)之一将文本矢量化为相等长度的序列(例如30,使用填充或必要时使用填充)等长的序列.由于您对位置感兴趣,为了更好的培训,您应该将位置矢量化为单独的维度.得到的向量序列数组将是您的训练输入(X).
  3. 您的预测(Y)也将是由0-1对向量组成的长度为30的序列,只要表示文本的序列中的相应单词是源(原点),就会在第一个(第二个)组件中放置1,否则为0.
  4. 使用此X和Y,您可以训练LSTM NN(参见例如keras),设置return_sequences = True并正确指定尺寸.
  5. 然后,您可以以相同的方式准备测试数据,获得结果,并通过具有最高值的对确定输入文本中源和目标的位置.