1

1 つのテキスト ファイルを読み取り、テキストマイニング パッケージを使用して用語ドキュメント マトリックスを作成しようとしています。各行を追加する必要がある用語ドキュメント マトリックスを作成できます。問題は、一度にファイル全体を含めたいということです。次のコードで何が欠けていますか? 提案をお寄せいただきありがとうございます。

import textmining

def term_document_matrix_roy_1():

    '''-----------------------------------------'''
    with open("data_set.txt") as f:
        reading_file_line = f.readlines() #entire content, return  list 
        print reading_file_line #list
        reading_file_info = [item.rstrip('\n') for item in reading_file_line]
        print reading_file_info
        print reading_file_info [1] #list-1
        print reading_file_info [2] #list-2

        '''-----------------------------------------'''
        tdm = textmining.TermDocumentMatrix()
        #tdm.add_doc(reading_file_info) #Giving error because of readlines 
        tdm.add_doc(reading_file_info[0])       
        tdm.add_doc(reading_file_info[1])
        tdm.add_doc(reading_file_info[2])


        for row in tdm.rows(cutoff=1):
            print row

サンプル テキスト ファイル: "data_set.txt" には、次の情報が含まれています。

Pythonコードを書いてみましょう

これまで、本書では主にアドホック検索のプロセスについて説明してきました。

その過程で、いくつかの重要な機械学習技術を学びます。

出力は Term Document Matrix で、基本的に特定の単語が何回出現するかです。出力画像: http://postimg.org/image/eidddlkld/

ここに画像の説明を入力

4

2 に答える 2

2

私の理解が正しければ、現在、ファイルの各行を個別のドキュメントとして追加しています。ファイル全体を追加するには、行を連結して、一度にすべて追加します。

tdm = textmining.TermDocumentMatrix()
#tdm.add_doc(reading_file_info) #Giving error because of readlines 
tdm.add_doc(' '.join(reading_file_info))

複数のマトリックスを探している場合、行を別のドキュメントに分割する別の方法がない限り、ドキュメントは 1 つしかないため、それぞれに 1 つの行しか得られません。これが本当にあなたが望むものかどうかを再考することをお勧めします。それにもかかわらず、このコードはあなたのためにそれを行うと思います:

with open("txt_files/input_data_set.txt") as f:
    tdms = []
    for line in f:
        tdm = textmining.TermDocumentMatrix()
        tdm.add_doc(line.strip())
        tdms.append(tdm)

    for tdm in tdms:
        for row in tdm.rows(cutoff=1):
            print row

このコードを実際にテストできていないため、出力が正しくない可能性があります。うまくいけば、それはあなたの方法であなたを取得します。

于 2013-05-10T19:20:46.473 に答える
1

@フレッド返信ありがとうございます。画像ファイルで示したとおりに表示したい。実際には、次のコードを使用して生成できるのと同じ結果ですが、各行を 1 つのマトリックスではなく個別のマトリックスとして使用したいと考えています。

with open("txt_files/input_data_set.txt") as f:
    reading_file_info = f.read()#reading lines exact content
    reading_file_info=f.read 
    tdm = textmining.TermDocumentMatrix()
    tdm.add_doc(reading_file_info)

    tdm.write_csv('txt_files/input_data_set_result.txt', cutoff=1)
    for row in tdm.rows(cutoff=1):
        print row

私がしようとしているのは、テキスト ファイルを読み込んで用語ドキュメント マトリックスを作成することです。

于 2013-05-10T19:55:04.607 に答える