De nombreuses bibliothèques de langage naturel japonais arrêtent le traitement en raison d'une erreur au moment où vous appuyez sur l'hébreu ou le coréen. Voici quelques sorts utiles dans de tels cas.
janome est un excellent analyseur morphologique qui vous évite d'avoir à installer MeCab, mais si même un caractère non japonais est mélangé, vous mourrez avec une erreur. Dans l'exemple de lecture de la barre de changement de langue gauche de wikipedia ...
Depuis le bar à gauche de wikipedia
text = "Version dans une autre langue Italiano 한 국어 Polski Simple English"
t = Tokenizer()
for token in t.tokenize(text):
print token
---------------
Traceback (most recent call last):
File "tests.py", line 98, in <module>
for token in t.tokenize(text):
File "lib/python2.7/site-packages/janome/tokenizer.py", line 107, in tokenize
pos += lattice.forward()
File "lib/python2.7/site-packages/janome/lattice.py", line 124, in forward
while not self.enodes[self.p]:
IndexError: list index out of range
python
import re
import nltk
def filter(text):
"""
:param text: str
:rtype : str
"""
#Éliminez les alphabets, les caractères alphanumériques demi-largeur, les symboles, les sauts de ligne et les tabulations
text = re.sub(r'[a-zA-Z0-9¥"¥.¥,¥@]+', '', text)
text = re.sub(r'[!"“#$%&()\*\+\-\.,\/:;<=>?@\[\\\]^_`{|}~]', '', text)
text = re.sub(r'[\n|\r|\t]', '', text)
#Éliminer les caractères non japonais(Coréen, chinois, hébreu, etc.)
jp_chartype_tokenizer = nltk.RegexpTokenizer(u'([Ah-Hmm]+|[UNE-Hmm]+|[\u4e00-\u9FFF]+|[Ah-んUNE-Hmm\u4e00-\u9FFF]+)')
text = "".join(jp_chartype_tokenizer.tokenize(text))
return text
text = "Version dans une autre langue Italiano 한 국어 Polski Simple English"
text = filter(text)
t = Tokenizer()
for token in t.tokenize(text):
print token
------------------
Autre préfixe,Connexion de nom,*,*,*,*,autre,Ta,Ta
Nomenclature des langues,Général,*,*,*,*,Langue,Gengo,Gengo
Nomenclature des versions,suffixe,Général,*,*,*,Édition,Van,Van
Recommended Posts