Как идентифицировать Существительные в строке и использовать их как заглавные? - PullRequest
0 голосов
/ 29 марта 2020

У меня есть простой простой текст в нижнем регистре и без знаков препинания. Есть ли какая-либо библиотека, которая может помочь изменить верхний регистр, например, где существительные или где требуется? Как имена после г-на и так. Любое решение или подсказка может быть очень полезным. например: на английском языке sh на английском языке sh .. в простом тексте, в нескольких местах есть имена. и несколько имен должны быть написаны заглавными буквами. как

mr. john is living in canada

до

Mr. John is living in Canada

1 Ответ

0 голосов
/ 29 марта 2020

Вот обходной путь, использующий библиотеку nltk для идентификации существительных с использованием функции pos_tag:

#Import nltk modules

import nltk
from nltk.tokenize import word_tokenize
from nltk.tag import pos_tag

text = "mr. john is living in canada"

#Define a function to extract nouns from the string

def ExtractNoun(sentence):
    sentence = nltk.word_tokenize(sentence)
    sentence = nltk.pos_tag(sentence)
    return sentence

sent = ExtractNoun(text)

#This will return a tuple of tokens and tags

print(sent)
[('mr.', 'NN'), ('john', 'NN'), ('is', 'VBZ'), ('living', 'VBG'), ('in', 'IN'), ('canada', 'NN')]

#Create a list of nouns

nn = [i[0] for i in sent if i[1] == 'NN']

#Capitalize the nouns which are matching with the list

text_cap = " ".join([x.capitalize() if x in nn else x for x in text.split()])
print(text_cap)

'Mr. John is living in Canada'

Надеюсь, что это работает !!

...