J'ai écrit une interface graphique qui permet la saisie en japonais et quand vous allez dans le fichier> analyser écrit dans un fichier texte. Ce fichier texte est ensuite exécuté dans MeCab où des espaces sont placés entre les mots. Après cela, il est supposé être à nouveau écrit dans le fichier texte, afin qu'il puisse être affiché dans une autre fenêtre de l'interface graphique.Python 2.7 - comment écrire des informations analysées par MeCab dans un fichier texte?
Le problème que je rencontre est qu'il ne veut pas écrire les données analysées dans le fichier texte. Il n'a aucun problème à l'écrire la première fois. En outre, il imprime les informations analysées à IDLE sans problème. Voici l'analyseur et l'erreur:
#!/usr/bin/python
# -*- coding: <utf-8> -*-
import sys
import MeCab
import codecs
read_from = open("pholder.txt").read()
mecab = MeCab.Tagger("-Owakati")
output = mecab.parse(read_from)
print output
text = output
write_to = codecs.open("pholder.txt", "w", "utf-8")
write_to.write(text)
write_to.close()
Traceback (most recent call last):
File "C:\...\mecabSpaces.py", line 16, in <module>
write_to.write(text)
File "C:\...\codecs.py", line 691, in write
return self.writer.write(data)
File "C:\...\codecs.py", line 351, in write
data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
Que signifie exactement 'mecab.parse()'? Comme dans, que obtenez-vous si vous tapez 'mecab.parse (read_from)' à l'invite de commande? –
La fonction d'analyse analyse la façon dont la fonction Tagger lui demande d'analyser. C'est comme ça que je le comprends. – jeffberhow
Désolé, je ne comprends pas comment commenter avec les sauts de page. Ce serait une analyse d'une ligne qui séparerait le test par des espaces: print MeCab.Tagger ('- Owakati') .parse ('testtesttest') – jeffberhow