如何处理从NLP中的文档中提取的文本,如W O R K E X P E R I E N C E?

如何处理从NLP中的文档中提取的文本,如W O R K E X P E R I E N C E?,nlp,data-science,Nlp,Data Science,我正在从简历中提取文本PDF,doc/Docx。我收到的文本每个字母之间都有空格。例如,工作经验即将到来 沃尔克 E X P E R I E N C E 我想把输出作为工作经验。可能有这样的词,我事先不知道。如何处理这种情况?如果您能给我指点方向,我将不胜感激 提前感谢。在下面的Python解决方案中,我假设W O K E X p E R I E N C E和类似序列是单独可用的,并且它们不是全部连接在一起的。如果它们连接在一起,下面的代码将提取一个单词序列 我还假设您可以创建您处理的特定于领域

我正在从简历中提取文本PDF,doc/Docx。我收到的文本每个字母之间都有空格。例如,工作经验即将到来

沃尔克 E X P E R I E N C E

我想把输出作为工作经验。可能有这样的词,我事先不知道。如何处理这种情况?如果您能给我指点方向,我将不胜感激


提前感谢。

在下面的Python解决方案中,我假设W O K E X p E R I E N C E和类似序列是单独可用的,并且它们不是全部连接在一起的。如果它们连接在一起,下面的代码将提取一个单词序列

我还假设您可以创建您处理的特定于领域的词汇列表。如果没有这样的词典,您可以使用nltk或enchanted英语词典

# Create an English lexicon
vocabulary = set()

# Populate the vocabulary. You can also use an enchanted or nltk dictionary.
# I only add two words here but in practice you have to do this in a loop over your lexicon.
vocabulary.add('work')
vocabulary.add('experience')

# Put the letters (W O R K E X P E R I E N C E) here
yourData = 'W O R K E X P E R I E N C E'
yourData = yourData.lower().split(' ')

# Output goes here
output = ""

buffer = ""
# For adding a space before the captured words (starting from the second word)
startOfSeq = True
for letter in yourData:
    if letter != " ":
        buffer += letter
    # If the concatenated letters so far have a size greater than or equal to 2 and constitute a word
    if len(buffer) >= 2 and buffer in vocabulary:
        if startOfSeq:
            output += buffer
            startOfSeq = False
        else:
            output += " "
            output += buffer
        # Reset the buffer
        buffer = ""
print(output)

你到底是什么意思?你想达到什么目的,你尝试了什么,确切的问题是什么?如果带空格的单词事先不知道怎么办?这些单词必须至少在英语词汇表中。或者在目标语言的词汇表中。您可以使用nltk或enchanted软件包导入英语词汇表。您的解决方案不适用于带空格字母的人名吗?不,不是此解决方案。专有名词名称的问题是,我们要么必须事先知道它们,要么它们必须具有诸如首字母大写之类的特征。