のセットで各単語を比較したいと私は内容のリストを持っている: - 私は、それぞれの文を分割し、キーワードのセットと比較したいどのようにリスト内の文字列を分割し、キーワード
for 30 days
for 40 working days
for 20 weeks
for 2 months
: -
day
week
month
year
キーワード'days'
が、私は'1'
とその文字列に数を乗算したい文字列の中に存在している場合。キーワード'month'
が存在する場合は、その文字列の数字に'30'
などを掛けてください...私はPythonには新しくありますので、どうぞ!
私のコード
with open("test_term.csv", "rb") as file1:
reader = csv.reader(file1)
extractedlist = list(reader)
#print extractedlist
def split_line(text):
# split the text
words = text[0].split(' ')
# for each word in the line:
new_list = []
for word in words:
#print word
#print w2n.word_to_num(word)
conversion = w2n.word_to_num(word)
if isinstance(conversion, (int,long)):
#print conversion
new_list.append(conversion)
else:
new_list.append(word)
return new_list
for extraRow in extractedlist:
worn = split_line(extraRow)
keywords = {"day":1,"days":1,"year":365,"years":365,"week":7,"weeks":7,"month":30,"months":30}
#for s in worn:
# splitted_string = s.split(' ')
interesting_words = worn[2:]
mult = 1
for k,v in keywords.iteritems():
for word in interesting_words :
mult = v
break
result = mult*worn[1]
print result
今私はここで一つだけ入力文字列for thirty working days
は'thirty'
が'30'
に変換されているので、着用して、私たちは'for thirty working days'
出力されていています -
210
900
10950
900
210
10950
30
30
しかし、私が期待している出力は30 * 1です。すなわち、'30'
dictionnary = {"day":1, "month":30 ... }
:
は本当にそのような内容はありますか右/左側に複数のテキストがあることができますか? –
[このデモ](https://ideone.com/8MHDFv)を確認してください。 –
私はちょうど私のために働く答えを投稿しました(私は自分のコンピュータで試しました) – javidgon