如何在Python中从多个docx文件创建语料库

时间:2017-02-23 04:53:39

标签: python nltk corpus

我有一个包含各种10个docx文件的文件夹。我正在尝试创建一个语料库,该列表应该是长度为10的列表。列表中的每个元素都应该引用每个docx文档的文本。

我有以下功能从docx文件中提取文本:

            import os
            from nltk.corpus.reader.plaintext import PlaintextCorpusReader
            import glob 
            from docx import *
            def getText(filename):
                document = Document(filename)

                newparatextlist = []
                for paragraph in document.paragraphs:
                    newparatextlist.append(paragraph.text.strip().encode("utf-8")) 
                return newparatextlist

            path = 'pat_to_folder/*.docx'   
            files=glob.glob(path)  

            corpus_list = []
            for f in files:
                cur_corpus = getText(f)
                corpus_list.append(cur_corpus)

            corpus_list[0] 

但是,如果我在word文档中有以下内容: http://www.actus-usa.com/sampleresume.doc https://www.myinterfase.com/sjfc/resources/resource_view.aspx?resource_id=53

上面的函数创建了一个列表列表。我怎样才能简单地从文件中创建语料库?

TIA!

2 个答案:

答案 0 :(得分:1)

我尝试通过其他方法解决此问题。它还包括将各种docx文件加载到语料库中...我对您的代码做了一些细微更改!

    def getText(filename):
        doc = Document(filename)
        fullText = []
        for para in doc.paragraphs:
            fullText.append(para.text.strip("\n"))
        return " ".join(fullText)

    PATH = "path_to_folder/*.docx"
    files = glob.glob(PATH)

    corpus_list = []
    for f in files:
        cur_corpus = getText(f)
        corpus_list.append(cur_corpus)

希望这可以解决问题!

答案 1 :(得分:0)

从nltk.corpus.reader.plaintext导入PlaintextCorpusReader

语料库= PlaintextCorpusReader(ROOT_PATH,'* .docx')

它应该根据ROOT_PATH中存在的docx文件的所有内容创建语料库