2

ドキュメントをプレーン テキストで処理し、単語リストを探して、見つかった各単語の周りにテキスト ウィンドウを返す必要があります。私はNLTKを使用しています。

Stack Overflow で、正規表現を使用して単語を検索する投稿を見つけましたが、インデックスを取得せずに印刷するだけです。特定の単語を見つけなければならないので、RE の使用は正しいとは思いません。

4

4 に答える 4

6

これはあなたが探しているものです:

  • str.index または str.find のいずれかを使用できます。

ファイルの内容:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sollicitudin tortor et velit venenatis molestie. Morbi non nibh magna, quis tempor metus. 
Vivamus vehicula velit sit amet neque posuere id hendrerit sem venenatis. Nam vitae felis sem. Mauris ultricies congue mi, eu ornare massa convallis nec. 
Donec volutpat molestie velit, scelerisque porttitor dui suscipit vel. Etiam feugiat feugiat nisl, vitae commodo ligula tristique nec. Fusce bibendum fermentum rutrum.

>>>a = open("file.txt").read()

>>>print a.index("vitae")
232
>>> print a.find("vitae")
232

- 編集 -

複数のインデックスに同じ単語がある場合は、ジェネレーターを使用してみてください。

def all_occurences(file, str):
    initial = 0
    while True:
        initial = file.find(str, initial)
        if initial == -1: return
        yield initial
        initial += len(str)


>>>print list(all_occurences(open("file.txt").read(),"vitae"))
[232, 408]
于 2013-01-13T20:08:49.400 に答える
1

私がよく理解していれば、位置インデックスを構築することがあなたが望むものです

from collections import defaultdict

text = "your text goes here"
pos_index = defaultdict(list)
for pos, term in enumerate(text.split()):
    pos_index[term].append(pos)

これで、各単語の位置を示すインデックスが作成されました。用語でクエリするだけです..

于 2013-01-13T20:41:28.043 に答える