2017-04-30 4 views
0

文章を解析する必要があります。 「アリスは少年です。 ['Alice'、 'boy']と に、 "象は哺乳類です" ['elephant'、 'mammal']に変換する。意味私は文字列を 'is'で分割し、 'a/an'も削除する必要があります。 これを行うにはエレガントな方法がありますか?正規表現を使用して文章を解析するには

+2

あなたはコードであなたの試みを投稿することができますか? –

+0

文章の形式は何ですか? –

+0

[stopwordsを削除する](http://stackoverflow.com/questions/5486337/how-to-remove-stop-words-using-nltk-or-python)が必要で、簡単な分割で残りの部分を取得する必要があります。 –

答えて

0

、あなたはre.searchを使用して、このようにそれを行うことができます。

print(re.search('(\w+) is [a|an]? (\w+)',"Alice is a boy.").groups()) 
# output: ('Alice', 'boy') 

print(re.search('(\w+) is [a|an]? (\w+)',"An elephant is a mammal.").groups()) 
# output: ('elephant', 'mammal') 
# apply list() if you want it as a list 
0

この答えは、正規表現の私たちを行いますが、物事の一つの方法ですされていません。

s = 'Alice is a boy' 
s = s.split() # each word becomes an entry in a list 
s = [word for word in s if word != 'a' and word !='an' and word !='is'] 

これに対する主な欠点は、あなたがリストに除外したいすべての単語をリストする必要があるだろうということです理解。あなたは正規表現を使用して主張している場合は

+0

「象は哺乳動物です」という例はどうですか?また、あなたは完全な停止を忘れました。 –

+0

{'a'、 'an'、 'is'} 'の中の単語でない場合、単語内の単語は簡単です –

+0

これは本当ですが、この方法は完全な停止を説明していません。文字列パッケージで 'translate'メソッドを使用することを考慮することができます。 – Windmill

関連する問題