正如評論中所指出的那樣,「關鍵詞」的定義在空中。但是如果你想保留一些「非必要」的單詞,這個問題很簡單。首先,數據:
ingredients = ['2 tablespoons butter',
'1 1/2 cups long-grain rice',
'1/2 cup chopped onion',
'1/2 cup chopped green bell pepper',
'1 clove garlic, minced']
BAD_WORDS = {
'chopped', 'cup', 'cups', 'clove', 'tablespoons', 'minced'
}
然後,我們創建了幾個短助手函數來提高可讀性。第一個接受一個字符串並確定它是否包含一個數字。我們將利用這個扔出去的話就像'1/2'
:
def contains_digit(w):
return any(c.isdigit() for c in w)
二是函數,它接受一個單詞,並確定它是否是普遍不好。一個單詞如果出現在BAD_WORDS
或它包含一個數字,就很糟糕。
def is_bad(w):
return (w in BAD_WORDS) or contains_digit(w)
然後,我們系統地刪除髒話:
extracted = []
for entry in ingredients:
words = [w.strip(',') for w in entry.split()]
remaining = [w for w in words if not is_bad(w)]
extracted.append(' '.join(remaining))
結果是:
['butter', 'long-grain rice', 'onion', 'green bell pepper', 'garlic']
來源
2016-10-29 19:23:33
jme
你是如何定義* 「基本字」 *?另外,你有什麼實際的嘗試,你堅持什麼? – UnholySheep
那麼,我正在考慮擺脫所有的數字和數字。比方說,我可以製作一個特殊的數字列表和計數單詞,如果列表中的任何元素包含與特殊列表中的元素相匹配的字符串,則應刪除該元素的字符串。 – Jundong
是的,你可以做到這一點。它會涉及到一些編碼(就像大部分與字符串操作一樣)。 – UnholySheep