如何解决如何为每个文件分别输出假结果?
我正在使用以下python代码在计算机目录中的文件中输出组织名称
nlp = spacy.load('en_core_web_sm')
my_path = "/path/to/file/directory"
files = os.listdir(my_path)
myset = []
for file in files:
newpath = (os.path.join(my_path,file))
newpath1 = textract.process(newpath)
newpath2 = newpath1.decode("utf-8")
doc = nlp(newpath2)
for ent in doc.ents:
if ent.label_=="ORG":
myset.append(ent.text)
print(myset)
这将输出以下内容:
['Apple','Tesla','Ford','Honda','IBM','Microsoft','Walmart','McDonalds']
问题是它不会按文件分开结果。它从所有文件中获取组织名称,并将它们放在一个列表中。理想情况下,我希望将结果按文件分组。例如,如下所示:
[(Apple,Tesla),(Ford,Honda),(IBM),(Microsoft,Walmart,McDonalds)]
编辑:找到答案并将其发布在下面。向用户@AMC大喊
解决方法
找到了答案,这要感谢用户@AMC。我为每个文件创建了一个列表,将组织名称附加到该列表,然后将每个列表添加到主列表中,如下所示:
nlp = spacy.load('en_core_web_sm')
my_path = "/path/to/directory"
files = os.listdir(my_path)
myset = []
for file in files:
newpath = (os.path.join(my_path,file))
newpath1 = textract.process(newpath)
newpath2 = newpath1.decode("utf-8")
doc = nlp(newpath2)
subset = []
for ent in doc.ents:
if ent.label_=="ORG":
subset.append(ent.text)
myset.append(subset)
print(myset)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。