Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中从多个docx文件创建语料库_Python_Nltk_Corpus - Fatal编程技术网

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

如何在Python中从多个docx文件创建语料库,python,nltk,corpus,Python,Nltk,Corpus,我有一个由10个docx文件组成的文件夹。我正在尝试创建一个语料库,它应该是一个长度为10的列表。列表中的每个元素都应参考每个docx文档的文本 我有以下功能从docx文件中提取文本: import os from nltk.corpus.reader.plaintext import PlaintextCorpusReader import glob from docx import *

我有一个由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文档中包含以下内容:

上面的函数创建一个列表。如何简单地用这些文件创建一个语料库


蒂亚

我用不同的方法来解决我的问题。它还包括将各种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)

希望这能解决问题

从nltk.corpus.reader.plaintext导入PlaintextCorpusReader

语料库=明文语料库阅读器(根路径,*.docx)


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

,而不会看到我们可以确定的文件示例。你所说的语料库是指10个文档中的文本列表吗?在向newparatextlist添加文本时,使用
extend
而不是
appent
。重复?答案对链接问题有帮助吗?@putonspectales,示例文件如上面链接中所附:。你是对的,我想从10个文档中创建一个文本列表。该列表中的每个元素都应该是每个文档中的文本。使用上面使用的方法,我得到了一个包含10个列表的列表。当我试图将其展平时,会得到一个列表,其中每个元素都是文件中的一行,而不是文件中的全部文本。@alvas:这怎么可能是重复的?我在发帖之前读过这个问题。我不想创建docx文件。我已经有docx文件,我正试图用它创建一个语料库。我要走另一条路。