【发布时间】:2021-06-30 13:13:59
【问题描述】:
我有一个包含书名页字符串值的数据集(例如,书名页上的所有单词,我的 txt 文件的每一行都是不同的书)。从这里我试图检索作者的姓名作为出现在标题页上的人名,并将每个姓名存储在 csv 文件中的单独行上。当我键入以下代码时,我会为每个条目获得一个“无作者”值,这根据输入数据是不合理的。有人可以帮我弄清楚出了什么问题吗?谢谢,过去几天我一直在为此绞尽脑汁,但没有任何结果。
import stanza
import csv
stanza.download('en')
nlp = stanza.Pipeline('en')
def get_human_names(text,output):
with open(text, 'r', encoding = "ISO-8859-1") as txt_file:
Lines=txt_file.readlines()
person_list=[]
for line in Lines:
doc=nlp(str(line))
for sent in doc.sentences:
for token in sent.tokens:
if {token.ner}=='B-PERSON' or {token.ner}=='E-PERSON':
person_list.append({token.text})
if(len(person_list)==0): ## avoid skipping entries in the output file
person_list=["no author"]
with open(output, 'a') as csv_output:
writer=csv.writer(csv_output)
writer.writerow(person_list)
get_human_names('/Users/tancredirapone/Desktop/LoC_Project/titles.txt','/Users/tancredirapone/Desktop/LoC_Project/titles_author_stanza.csv')
【问题讨论】:
标签: python stanford-nlp