从文本文件创建术语文档矩阵

时间:2013-05-10 10:38:48

标签: python matrix term-document-matrix

我正在尝试阅读一个文本文件,并使用文本包创建一个术语文档矩阵。我可以创建术语文档矩阵,我需要逐行添加每个文档矩阵。问题是我想一次包含整个文件。我在以下代码中遗漏了什么?提前感谢任何建议?

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代码

到目前为止,本书主要讨论了临时检索的过程。

在此过程中,我们将研究一些重要的机器学习技术。

输出将是术语文档矩阵,基本上是一个特定单词出现的次数。 输出图像:http://postimg.org/image/eidddlkld/

enter image description here

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您当前正在将文件的每一行添加为单独的文档。要添加整个文件,您可以只连接这些行,并一次性添加它们。

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

如果您正在寻找多个矩阵,您最终只能获得一行,因为只有一个文档,除非您有另一种方法将行拆分为单独的文档。你可能想重新思考这是否是你真正想要的。不过,我认为这段代码会为你做到:

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

我实际上无法测试此代码,因此输出可能不正确。希望它会让你顺利。

答案 1 :(得分:1)

@Fred感谢您的回复。我希望显示我在图像文件中显示的内容。实际上我能够使用以下代码生成相同的结果,但我希望每一行作为单独的矩阵而不是一个矩阵。

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

我正在尝试阅读文本文件并创建术语文档矩阵。