2016-07-17 8 views

答えて

2

IはWordNetを使用して示唆しています。あなたはそれをjava(JWNLライブラリ)などから呼び出すことができます。ここに提案があります:それぞれの単語について、それが上位語であることを確認してください。上唇の階層の最上位にある食用には、「食べ物、栄養素」があります。おそらくあなたが望むものです。これをテストするには、Onlineバージョンの「beer」という単語をクエリします。 「S」をクリックし、「継承された上位語」をクリックします。あなたは、階層内のこのどこかを見つける:

.... 
    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) 
      .... 

あなたがお好みのプログラミング言語を使用して、この階層を横切ることができるなど、すべての食用品をフラグを立てたら、あなたは2」に数、すなわち2をキャッチすることができますビール "と、あなたが必要とするすべての情報があります。数字だけをキャッチすることは、下降コーディングタスクになる可能性があることに注意してください。それが役に立てば幸い!

+1

これはまた、 "今は3/3分の卵を沸かす"といっしょに頑強になります。 –

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 

は "ワンサラダと2つのビール"

がに変換する必要があります必要に応じて実装できるその他の要素が含まれています。

このパッケージのインストール。

pip install word2number 

更新

あなたはこのように実装することができます。

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) 

結果

{ 'ビール':2 'サラダ':1}

+0

"30ビール" ... – hashcode55

+0

@ hashcode55だから私は彼のニーズにアルゴリズムを変更する必要があるように上記の理由です。 –

関連する問題