comment puis-je annuler la validation de la sortie de ce code?
class Core:
AttributeError: 'spacy.tokens.token.Token' object has no attribute 'join'
J'ai essayé: https://pypi.org/project/untokenize/
MosesDetokenizer
.join()
Mais j'ai cette erreur pour mon dernier code (de ce post):
TypeError: 'spacy.tokens.token.Token' object is not iterable
Cette erreur pour .join ():
def __init__(self, user_input): pos = pop(user_input) subject = "" for token in pos: if token.dep == nsubj: subject = untokenize.untokenize(token) subject = S(subject)
Et pour MosesDetokenizer: text = u "{}" .format ("" .join (jetons)) TypeError: ne peut rejoindre qu'un itérable
3 Réponses :
Tous les jetons dans spacy conservent leur contexte afin que tout le texte puisse être recréé sans aucune perte de données.
Dans votre cas, tout ce que vous avez à faire est:
''.join([token.text_with_ws for token in doc])
Puisque l'attribut text_with_ws
a le jeton avec son caractère d'espacement correspondant s'il existe.
J'ai toujours cette erreur: su.join ([token.text_with_ws pour jeton dans le sujet]) TypeError: l'objet 'spacy.tokens.token.Token' n'est pas itérable
Je viens de réaliser, dans votre code, vous n'enregistrez qu'un seul jeton comme sujet
Oui, puis-je faire quelque chose avec ça? Rien d'Internet ne fonctionne :(
Mettez les jetons dans une liste, puis rejoignez
Voici mon code où j'essaye de vérifier si le sujet existe dans une liste: class S: def __init __ (self, subject): personal_words = ["I", "ME", "US"] er = ["YOU"] self.subject = subject s = [] s.append (subject) print (s) su = "" su.join ([token.text_with_ws for token in s]) print (su) if any (item in s for item in personal_words): print ("T1") else: print ("T2") Et voici ma sortie Je suis Ironman [I] (je ne sais pas pourquoi le code est si difficile à lire ici)
Et voici l'erreur: TypeError: L'argument 'other' a un type incorrect (spacy.tokens.token.Token attendu, str obtenu)
Les jetons SpaCy ont leur objet doc associé, donc cela vous donnera la phrase originale sous forme de chaîne:
import spacy nlp = spacy.load('en') doc = nlp("I like cake.") token = doc[0] print(token.doc) # prints "I like cake."
OK, pouvez-vous développer votre code? Qu'est-ce que pop
? Qu'est-ce qu'un exemple de chaîne d'entrée? Je réviserai mon code pour passer du texte au jeton.
pop = spacy.load ('en_core_web_sm') Un exemple d'entrée est quelque chose comme: Je suis Ironman Le programme prendra le sujet I et créera un jeton. Je peux vous envoyer le code par e-mail, mais je ne sais pas comment le rendre facile à lire ici
@ polm23 Et si je voulais muter un jeton et renvoyer un document muté? Comment pourrais-je procéder?
Si vous avez une question, posez une nouvelle question plutôt que de poser une question dans les commentaires ...
@RazvanP Je crois que ce dont vous avez besoin ici est d'obtenir la sortie suivante
new_list=[] doc = nlp("I like cake.") for i in doc: new_list.append(''+i.text+'') print(new_list)
Si oui, voici le code.
['I', 'like', 'cake', '.']
Voir si cela fonctionne pour vous.