【发布时间】:2021-09-27 15:30:21
【问题描述】:
我正在尝试使用Doc2Vec 获取大约 5,000 个法律摘要的语料库的文档相似性值(我知道语料库可能有点小,但这是一个概念验证一个包含大约 15,000 条简报的更大语料库的项目,我稍后将进行编译)。由于对 Python 有点陌生,我最初在为文件夹中组装的 5,000 个文本文件创建预处理函数时遇到了一些麻烦,但我设法创建了一个。
问题在于,当我使用Tagged Document 功能为每个文档(“单词”)分配一个“标签”时,只有来自 5,000 个文档(.txt 文件)之一的文本用于“单词”部分,并重复,同时使用每个文档的标签(文件名)。基本上,一份简报会被标记 5,000 次,每个都有不同的标签,而我显然想要 5,000 份简报,每个简报都有一个唯一的文件名标签。
下面是我使用的代码。我想知道是否有人可以帮助我找出我哪里出错了。我不知道这是否是Tagged Document 功能,或者它是否是我创建的循环的问题 - 也许我需要另一个循环,或者我让循环读取文件路径的方式有问题?我对 Python 比较陌生,所以这是完全可能的。
谢谢!
briefs = []
BriefList = [p for p in os.listdir(FILEPATH) if p.endswith('.txt')]
for brief in BriefList:
str = open(FILEPATH + brief,'r').read()
tokens = re.findall(r"[\w']+|[.,!?;]", str)
tagged_data = [TaggedDocument(tokens, [brief]) for brief in BriefList]
briefs.append(tagged_data)
【问题讨论】:
标签: python loops tokenize word-embedding doc2vec