Ce que je fais est, enlever toutes les parties du discours excepté les noms d'un texte.Pourquoi ma fonction retourne une chaîne vide en python?
J'ai écrit une fonction pour cela. Ce n'est peut-être pas le meilleur ou le meilleur code pour le faire parce que je viens de commencer à coder en python. Je suis sûr que le bug doit être très basique mais je ne suis tout simplement pas capable de le comprendre.
Dans ma fonction deux entrées vont comme paramètres. L'un est l'emplacement du texte sur le disque dur et l'autre est l'emplacement du fichier où nous voulons la sortie.
Voici le code.
def extract_nouns(i_location, o_location):
import nltk
with open(i_location, "r") as myfile:
data = myfile.read().replace('\n', '')
tokens = nltk.word_tokenize(data)
tagged = nltk.pos_tag(tokens)
length = len(tagged)
a = list()
for i in range(0,length):
print(i)
log = (tagged[i][1][0] == 'N')
if log == False:
a.append(tagged[i][0])
fin = open(i_location, 'r')
fout = open(o_location, "w+")
for line in fin:
for word in a:
line = line.replace(word, "")
fout.write(line)
with open(o_location, "r") as myfile_new:
data_out = myfile_new.read().replace('\n', '')
return data_out
Lorsque j'appelle cette fonction, cela fonctionne très bien. Je reçois la sortie sur le disque dur comme je l'avais prévu mais il ne retourne pas la sortie sur l'interface ou devrais-je dire, il retourne une chaîne vide au lieu de la chaîne de sortie réelle.
Voici comment je l'appelle.
t = extract_nouns("input.txt","output.txt")
Si vous voulez l'essayer, prendre à la suite que le contenu du fichier d'entrée
"At eight o'clock on
Thursday film morning word line test
best beautiful Ram Aaron design"
Ceci est la sortie que je reçois dans le fichier de sortie (sortie.txt) quand je l'appelle la fonction mais la fonction renvoie une chaîne vide sur l'interface à la place. Il n'imprime même pas la sortie.
"
Thursday film morning word line test
Ram Aar design"
duplication possible de [Comment extraire noms utilisant NLTK pos \ _tag()?] (http://stackoverflow.com/questions/24409642/how-to-extract-nouns-using-nltk-pos-tag) – alvas
avez-vous essayé le code précédent que j'ai suggéré dans http://stackoverflow.com/questions/24409642/how-to-extract-nouns-using-nltk-pos-tag – alvas
@alvas c'est un problème complètement différent. C'est pourquoi je ne l'ai pas apporté là-bas. Et j'ai déjà essayé votre suggestion, je vais une fois que je pense à cette chose de base. Je suis très curieux de savoir ce qu'est le bug dans ma fonction. Pourriez-vous s'il vous plaît m'aider. – user3710832