2

ファイルでステミングを行いたい。端末で使用すると正常に動作しますが、テキストファイルで適用すると動作しません。端末コード:

print PorterStemmer().stem_word('complications')

機能コード:

def stemming_text_1():
    with open('test.txt', 'r') as f:
        text = f.read()
        print text
        singles = []    

        stemmer = PorterStemmer() #problem from HERE
        for plural in text:
            singles.append(stemmer.stem(plural))
        print singles

test.txt を入力

126211 crashes bookmarks runs error logged debug core bookmarks
126262 manual change crashes bookmarks propagated ion view bookmarks

望ましい/期待される出力

126211 crash bookmark runs error logged debug core bookmark
126262 manual change crash bookmark propagated ion view bookmark

どんな提案でも大歓迎です、ありがとう:)

4

1 に答える 1

2

ステマーが機能するには、テキストを単語に分割する必要があります。現在、変数textにはファイル全体が 1 つの大きな文字列として含まれています。ループは、各文字をにfor plural in text:割り当てます。textplural

for plural in text.split():代わりに試してください。

[編集]必要な形式で出力を取得するには、一度にすべてを読み取るのではなく、ファイルを 1 行ずつ読み取る必要があります。

def stemming_text_1():
    with open('test.txt', 'r') as f:
        for line in f:
            print line
            singles = []

            stemmer = PorterStemmer() #problem from HERE
            for plural in line.split():
                singles.append(stemmer.stem(plural))
            print ' '.join(singles)
于 2013-05-30T12:55:16.590 に答える