2017-09-14 48 views
1

值我有水果的名字一定列表/字典象下面這樣: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

是的,它是!我將編輯該問題。謝謝!! –

回答

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

每個水果是否帶有數字量? - 是的 –