2016-07-17 11 views

Antwort

2

I WordNet Verwendung empfehlen. Sie können es aus Java (JWNL-Bibliothek), etc. aufrufen. Hier ist der Vorschlag: Überprüfen Sie für jedes einzelne Wort, es ist hypernym. Für Esswaren auf der obersten Ebene der Hierarchie finden Sie "Nahrung, Nährstoff". Welches ist wahrscheinlich was du willst. Um dies zu testen, fragen Sie das Wort "Bier" in der Online Version ab. Klicken Sie auf das "S" und dann auf "geerbt hyernym". Sie werden diese irgendwo in der Hierarchie finden:

.... 
    S: (n) beverage, drink, drinkable, potable (any liquid suitable for drinking) "may I take your beverage order?" 
     S: (n) food, nutrient (any substance that can be metabolized by an animal to give energy and build tissue) 
      .... 

Sie diese Hierarchie durchqueren können die Programmiersprache Ihrer Wahl, usw. Wenn Sie alle Esswaren gekennzeichnet, dann können Sie die Nummer, dh 2 in „2 fangen Biere "und Sie haben alle Informationen, die Sie benötigen. Beachten Sie, dass das Abfangen der Zahlen von selbst eine Sinkcodieraufgabe sein kann! Ich hoffe es hilft!

+1

Dies wäre auch robuster mit "jetzt Ei für drei/3 Minuten kochen". –

3
In [1]: from word2number import w2n 
In [2]: print w2n.word_to_num("One") 
1 
In [3]: print w2n.word_to_num("Two") 
2 
In [4]: print w2n.word_to_num("Thirty five") 
35 

Sie konvertieren können mit diesem Paket nummerieren und Rest von Dingen, die Sie als Ihre Bedürfnisse implementieren können.

Installation dieses Pakets.

pip install word2number 

aktualisieren

Sie können wie folgt implementieren.

from word2number import w2n 
result = {} 
input = "One salad and two beers" 
b = input.split() 
for i in b: 
    if type(w2n.word_to_num(i)) is int: 
     result[b[b.index(i)+1]] = w2n.word_to_num(i) 

Ergebnis

{ 'Biere': 2, 'Salat': 1}

+0

Funktioniert nicht, wenn seine "fünfunddreißig Biere" ... – hashcode55

+0

@ hashcode55 Deshalb habe ich oben erwähnt wie OP den Algorithmus auf seine Bedürfnisse zu ändern. –