我目前正在一个项目中,我想从PDF提取文本,然后检查提取的文本中的单词之一是否出现在某个词典中。 如果是这样,我想给我们example.replace(file,x,y)用我字典中的值替换文本中的单词。
我正在努力检查文本中的所有单词并将它们与字典自动比较的循环。目的是我不必自己键入“ old”和“ new”,但程序会检查文本中的所有单词,如果它在字典中找到一个单词,则“ old”应是文本中的单词,而“新”键的值。手动版本有效。
这是我的代码
pip install django_pyodbc_azure-2.1.0.0-py3-none-any.whl
感谢帮助!
答案 0 :(得分:1)
如果您打算将提取的PDF文档中的单词替换为Dictionary值,则该解决方案可能会对您有所帮助。 只需挑选与Dictionary键相交的单词,然后将值一一替换即可。
import re
#text = Extracted text from PDF
text = r" with the loop for Die checking all words in my text and compare them to the dictionary automatically"
for key in set(text.split(' ')).intersection(dictionary.keys()):
text = re.sub(key,dictionary[key],text)
答案 1 :(得分:0)
由于不允许我发表评论...
此循环应为您提供帮助。
for old, new in dictionary.items():
# update text by replacing old with new
更换时,应确保只交换单词,否则可能发生“书”:“鞋”将“书市场”一词转换为“鞋市场”。该模块可以在这里为您提供帮助。 https://docs.python.org/3/library/re.html
实际上,这个人也解决了同样的问题。 Search and replace with "whole word only" option
如果您还想交换短语,则字典的顺序可能很重要;字典{'I':'you','I like':'chicken'}会将'I like'转换为'you like',尽管可能不需要。
答案 2 :(得分:0)
假设您能够阅读pdf文件。您可以使用
将数据存储在列表中list_voc = []
list_voc.extend(text.split())
现在使用一个简单的循环,您可以检查list的元素是否属于字典,如果确实属于字典,则将其替换。
indx=0
for i in pdf_vocab:
if i in dictionary.keys():
pdf_vocab[indx] = dictionary[i]
indx = indx + 1
indx变量存储列表的索引,只要元素(或单词)在字典中,我们就可以在该特定索引处替换该单词。