私は、ドキュメント内のキーワードを検索し、そのキーワードがある文全体を取得できるようにpythonスクリプトを作成しようとしています。私の研究から、私はacoraを使うことができるのを見ましたが、私はまだそれが失敗したことを発見しました。pythonでドキュメント内のキーワードを検索
2
A
答えて
0
これは、シェルで簡単に実行できる方法です。それを自分でスクリプトで書くべきです。
>>> text = '''this is sentence 1. and that is sentence
2. and sometimes sentences are good.
when that's sentence 4, there's a good reason. and that's
sentence 5.'''
>>> for line in text.split('.'):
... if 'and' in line:
... print line
...
and that is sentence 2
and sometimes sentences are good
and that's sentence 5
ここで私は.split('.')
でtext
を分割さと繰り返し、その後、単語and
で制御し、それが含まれている場合は、それを印刷。
また、の大文字と小文字を区別すると考える必要があります。あなたはこれが文である(HA?)かだと思います、このような!
と?
で終わるものとして、あなたのソリューションの多くのものが、また文章です(時には、彼らはありません)
を検討すべきである(!)ので、 ?
は
- これは文である(HA
- )、またはあなたは「私はドン(
- )ので
2
>>> text = """Hello, this is the first sentence. This is the second.
And this may or may not be the third. Am I right? No? lol..."""
>>> import re
>>> s = re.split(r'[.?!:]+', text)
>>> def search(word, sentences):
return [i for i in sentences if re.search(r'\b%s\b' % word, i)]
>>> search('is', s)
['Hello, this is the first sentence', ' This is the second']
0
0
grepまたはegrepコマンドをpythonのサブプロセスモジュールで使用すると、役立つことがあります。
例えば:
from subprocess import Popen, PIPE
stdout = Popen("grep 'word1' document.txt", shell=True, stdout=PIPE).stdout
#to search 2 different words: stdout = Popen("egrep 'word1|word2' document.txt",
#shell=True, #stdout=PIPE).stdout
data = stdout.read()
data.split('\n')
'$猫のドキュメント.txt | grep "keyword" –
@Franklinこれは彼が言ったこととはまったく異なっています。彼は文を求める。 –
はい、私はgrep "キーワード"が "キーワード"のためだけであることを認識しています。しかし、私が探しているのは、キーワードが現れた場合、キーワードがある文全体をつかむことです。何か案は? – Ryan