NLP ::提取实体及其从字符串在Python

问题描述:

值我有水果的名字一定列表/字典象下面这样:NLP ::提取实体及其从字符串在Python

fruits = ["Banana","Apples","Oranges"] 

这只是一个样本名单,也可以在它的许多水果。 我输入文本看起来像如下:

text1 = " I want to 2 Apples and 3 Bananas" 
text2 = " I need Apples 2, Bananas 5" 
text3 = "want to have 1 orange" 

我要指出,我的输入字符串是*流动的文本,因此不遵循任何一定的格式

问题:我想分析字符串,并获得一个表/列表与我有哪些数量的水果。数量可以在水果之前或之后。下面可以看作是输入“文本1”输出我想:

Apple 2 

Banana 3 

我有过类似的问题陈述了在各个环节但输入字符串具有我的问题没有一定的格式。 一些我所经历过的链接是:

python: extracting variables from string templates

How to extract variable name and value from string in python

extracting key value pairs from a string containing escaped characters

get python dictionary from string containing key value pairs

+0

在text1中有三个香蕉,但希望输出1。这是一个错字吗? – Psytho

+0

是的,它是!我将编辑该问题。谢谢!! –

如果数据完全是非结构化的,而且句话,你可能需要去nlp路线。但是如果你可以做出一些基本的假设,你可以尝试解决它。

例如:

1)是否每个水果配有一个数值量?

2)你可以在字符串中有其他乱码数字吗?

Example: 1 4 5 Apple 1 

如果你可以强制执行的基本规则就像一个水果带有一个数字,这个数字是(之前或之后)最接近的号码,然后你可以提取数字和水果的位置,然后取最接近的编号开始从左边开始。

text1 = " I want to 2 Apples and 3 Bananas" -> [2, Apple, 3, Banana] 

text2 = " I need Apples 2, Bananas 5" -> [Apple, 2, Banana, 5] 

text3 = "want to have 1 orange" -> [1, Orange] 
+0

每个水果是否带有数字量? - 是的 –