Pdf 使用nltk提取和标记单词-输出错误

Pdf 使用nltk提取和标记单词-输出错误,pdf,web-scraping,nltk,Pdf,Web Scraping,Nltk,我有一个文本文件(从pdf转换而来),我想从中提取名称-首先,尽管我想标记所有单词并让nltk标记它们(例如,专有名词的PPN)。 我的代码可以在一个文本文件上运行,但不能在另一个文本文件上运行 工作的文件如下所示: 1 2 GM HEALTH AND SOCIAL CARE STRATEGIC PARTNERSHIP BOARD MINUTES OF THE MEETING HELD ON 28 APRIL 2017 Bridgewater Community Healthcare NHS D

我有一个文本文件(从pdf转换而来),我想从中提取名称-首先,尽管我想标记所有单词并让nltk标记它们(例如,专有名词的PPN)。 我的代码可以在一个文本文件上运行,但不能在另一个文本文件上运行

工作的文件如下所示:

1
2
GM HEALTH AND SOCIAL CARE STRATEGIC PARTNERSHIP BOARD
MINUTES OF THE MEETING HELD ON 28 APRIL 2017
Bridgewater Community Healthcare NHS
Dorothy Whitaker
Trust
Bolton Council
Councillor Cliff Morris
Margaret Asquith
无法工作的文件如下所示(此文件的格式更适合实际pdf格式):

这是我的密码:

from nltk import word_tokenize, pos_tag, ne_chunk
import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
nltk.download('words')
nltk.download('words')

with open('mergedminutes.txt', 'r') as file: 
    data = file.read()
    data2 = data.split()
    tokens = nltk.word_tokenize(data)
    text = nltk.Text(tokens)

def categorize_words():
    print(pos_tag((tokens)))
output = categorize_words()
file = open("wordsfromminutes.txt", "w")
file.write(str(output))
file.close()
我想这一定和文件有关。这是第二个文件的输出:

"基本法","基本法","基本法","基本法","基本法","基本法","基本法","基本法","基本法",,目前,中国\ \ x00\\\x00\\\x00\\x00\\\x00\\x00\\x00\\x00\\x00\\x00\\x00\x00\\x00\\\x00\\\x00\\\x00\\\x00\\x00\\x00\x00\\x00\x00\x00\\x00\\\x00\U00\\\x00\x00\\U00\\\\\\\x00\x00\U00\\\\\\\x00\\\\\u00\\\\\\\\x00\\\\u00\\\\\\\x00\\x00\x00\\x00\\\\\\\u00\\\\\\\\\\\\\\\u00\\\\\\\\\\\\x00\x00\x00\\\\\\\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux0000\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00\ux00',('\x00','NNP'),('\x00','NNP'),('\x00','NNP'),('\x00','NNP'),('\x00','NNP'),'


有人知道这里发生了什么吗?谢谢。

第二个文件的输出可能是由于第二个文件中的编码错误。从pdf到txt的转换可能是问题的原因

尝试将第二个文件的内容复制并粘贴到一个新文件中,并以.txt扩展名保存。您可以使用记事本++、gedit、atom或vim等编辑器来执行此操作。然后将该文件用作程序的输入。通过将您提供的示例复制到.txt文件中,我可以从您的程序中获得以下输出

[(‘更大’、‘NNP’、(‘曼彻斯特’、‘NNP’)、(‘联合’、‘NNP’、(‘权威’、‘NNP’)、(‘GMCA’、‘NNP’、‘NNP’、(‘经济’、‘NNP’、(‘商业’、‘NNP’)、(‘增长’、‘NNP’、(‘和’、‘NNP’)、(‘技能’、‘NNP’、(‘审查’、‘NNP’、‘委员会’、‘NNP’、‘委员会’、‘NNP’、‘星期五’、‘CD’、‘四月’、‘NNP’、‘2018’、‘NNP’、‘CD’),('AT','NNP')、('2.00PM','CD')、('、'、'、'、('BOARDROOM','NNP')、('GMCA','NNP')、('GMCA','NNP','、('CHURCHGATE','NNP')、('HOUSE','NNP')、('Present','NNP')、('mint',、'NNP')、('counciller','NNP')、('Michael','NNP')、'NNP')、('Holly',、'NNP')、('in、'in、'deciller.)、'DT主席中的('DT等),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“)”),"凯特,","刘易斯,",",","萨尔福德,","NNP","马克,"NNP","亨特,"NNP","""亨特,"""""""",""恩普"""

我使用的文件和程序可以在上找到

在您的程序版本中将输出写入文件对我不起作用。我使用以下命令将程序的打印输出重定向到文件

python extract_names.py > wordsfromdoesntwork.txt

我使用的是Python 2.7.15+和nltk 3.4.4。

第二个文件的输出可能是由于第二个文件中的编码错误。从pdf到txt的转换可能是问题的原因

尝试将第二个文件的内容复制并粘贴到一个新文件中,并以.txt扩展名保存。您可以使用记事本++、gedit、atom或vim等编辑器来执行此操作。然后将该文件用作程序的输入。通过将您提供的示例复制到.txt文件中,我可以从您的程序中获得以下输出

[(‘更大’、‘NNP’、(‘曼彻斯特’、‘NNP’)、(‘联合’、‘NNP’、(‘权威’、‘NNP’)、(‘GMCA’、‘NNP’、‘NNP’、(‘经济’、‘NNP’、(‘商业’、‘NNP’)、(‘增长’、‘NNP’、(‘和’、‘NNP’)、(‘技能’、‘NNP’、(‘审查’、‘NNP’、‘委员会’、‘NNP’、‘委员会’、‘NNP’、‘星期五’、‘CD’、‘四月’、‘NNP’、‘2018’、‘NNP’、‘CD’),('AT','NNP')、('2.00PM','CD')、('、'、'、'、('BOARDROOM','NNP')、('GMCA','NNP')、('GMCA','NNP','、('CHURCHGATE','NNP')、('HOUSE','NNP')、('Present','NNP')、('mint',、'NNP')、('counciller','NNP')、('Michael','NNP')、'NNP')、('Holly',、'NNP')、('in、'in、'deciller.)、'DT主席中的('DT等),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“)”),"凯特,","刘易斯,",",","萨尔福德,","NNP","马克,"NNP","亨特,"NNP","""亨特,"""""""",""恩普"""

我使用的文件和程序可以在上找到

在您的程序版本中将输出写入文件对我不起作用。我使用以下命令将程序的打印输出重定向到文件

python extract_names.py > wordsfromdoesntwork.txt
我正在使用Python 2.7.15+和nltk 3.4.4