pip installer le Tokenizer japonais
Créer un fichier a été configuré dans le référentiel Github.
Si vous pouvez le faire, installez-le manuellement. Veuillez vous référer à cette section pour l'installer.
Un exemple est montré dans python3.x. Si vous voulez voir un exemple pour python2.x, [exemple de code](https://github.com/Kensuke- Voir Mitsuzawa / JapaneseTokenizers / blob / master / examples / examples.py).
Le système de la partie du discours est résumé en détail sur cette page. Le système de partie de la parole de Juman / Human ++ est également décrit, donc si vous souhaitez effectuer un filtrage de partie de la parole avec Juman / Human ++, veuillez le changer et l'utiliser.
En passant, vous pouvez également utiliser le dictionnaire neologd dans Human / Human ++. Veuillez consulter cet article. J'ai créé un script pour rendre le dictionnaire neologd utilisable dans juman / juman ++
La seule différence entre Mecab, Juman / Human ++ et Kytea est la classe qu'ils appellent. Il hérite de la même classe commune.
Présentation de l'utilisation de la version 1.3.1.
import JapaneseTokenizer
#Sélectionnez un type de dictionnaire."neologd", "all", "ipadic", "user", ""Peut être sélectionné.
mecab_wrapper = JapaneseTokenizer.MecabWrapper(dictType='neologd')
#Définissez la partie du mot que vous souhaitez acquérir.
pos_condition = [('nom', '固有nom'), ('adjectif', 'Indépendance')]
sentence = "La République islamique d'Iran, communément appelée Iran, est une république islamique d'Asie occidentale et du Moyen-Orient. Aussi connu sous le nom de Perse ou Perse."
#Division morphologique,Filtrage des mots partiels,Liste complète en une seule ligne
print(mecab_wrapper.tokenize(sentence).filter(pos_condition).convert_list_object())
Ensuite, le résultat ressemble à ceci:
['République islamique d'Iran', 'Iran', 'Asie de l'Ouest', 'moyen-Orient', 'République islamique', 'Perse', 'Perse']
C'est fondamentalement la même chose que mecab. Seule la classe à appeler est différente.
Pour Juman
from JapaneseTokenizer import JumanWrapper
tokenizer_obj = JumanWrapper()
#Définissez la partie du mot que vous souhaitez acquérir.
pos_condition = [('nom', '固有nom'), ('nom', 'Nom du lieu'), ('nom', 'Nom de l'organisation'), ('nom', '普通nom')]
sentence = "La République islamique d'Iran, communément appelée Iran, est une république islamique d'Asie occidentale et du Moyen-Orient. Aussi connu sous le nom de Perse ou Perse."
#Division morphologique,Filtrage des mots partiels,Liste complète en une seule ligne
print(tokenizer_obj.tokenize(sentence).filter(pos_condition).convert_list_object())
['Iran', 'Islam', 'Kyowa', 'Pays', 'Connu comme', 'Iran', 'Ouest', 'Asie', 'moyen-Orient', 'Islam', 'Kyowa', 'Système', 'Pays家', 'Perse', 'Perse']
Pour Juman ++
from JapaneseTokenizer import JumanppWrapper
tokenizer_obj = JumanppWrapper()
#Définissez la partie du mot que vous souhaitez acquérir.
pos_condition = [('nom', '固有nom'), ('nom', 'Nom du lieu'), ('nom', 'Nom de l'organisation'), ('nom', '普通nom')]
sentence = "La République islamique d'Iran, communément appelée Iran, est une république islamique d'Asie occidentale et du Moyen-Orient. Aussi connu sous le nom de Perse ou Perse."
#Division morphologique,Filtrage des mots partiels,Liste complète en une seule ligne
print(tokenizer_obj.tokenize(sentence).filter(pos_condition).convert_list_object())
['Iran', 'Islam', 'République', 'Connu comme', 'Iran', 'Ouest', 'Asie', 'moyen-Orient', 'Islam', 'Système républicain', 'Nation', 'Perse', 'Perse']
En fait, si le texte est aussi décent que Wikipedia, Human et Juman ++ ne changeront pas grand-chose. Lorsque vous utilisez Juman ++, c'est un peu lent uniquement au premier appel. En effet, la mise en mémoire du fichier modèle prend du temps. A partir de la deuxième fois, le processus qui continue de fonctionner est appelé, donc cette lenteur disparaît.
Tout est pareil sauf pour mecab, juman et le nom de la classe.
from JapaneseTokenizer import KyteaWrapper
tokenizer_obj = KyteaWrapper()
#Définissez la partie du mot que vous souhaitez acquérir.
pos_condition = [('nom',)]
sentence = "La République islamique d'Iran, communément appelée Iran, est une république islamique d'Asie occidentale et du Moyen-Orient. Aussi connu sous le nom de Perse ou Perse."
#Division morphologique,Filtrage des mots partiels,Liste complète en une seule ligne
print(tokenizer_obj.tokenize(sentence).filter(pos_condition).convert_list_object())
Auparavant, j'ai posté l'article de Mecab qui fait quelque chose comme un wrapper contraignant et qui est auto-satisfait. À ce moment-là, je l'ai fait moi-même, donc ça va. Cependant, après cela, j'en suis venu à penser que __ "Je veux que vous essayiez facilement la comparaison des analyseurs morphologiques" __, et j'en suis venu à le faire.
C'est juste autour de moi, mais je ressens une atmosphère du genre "analyse morphologique? Pour le moment, avec Mecab. Ou autre chose?"
Quand je recherche avec Qiita, il y a 347 résultats pour mecab
, mais seulement 17 pour juman
. Il y a 3 cas pour «kytea».
Certes, je pense que Mecab est très bon en tant que logiciel. Mais, "Je ne sais rien d'autre, mais il n'y a que Mecab, non?" Est-ce quelque chose de différent, n'est-ce pas? Je pense.
C'est pourquoi la première motivation a été de faire appel que __ "Il y a d'autres que Mecab" __.
Récemment, je suis allé dans la communauté Python étrangère vivant au Japon.
Bien qu'ils s'intéressent au traitement japonais, ils ne savent pas quel analyseur morphologique doit être utilisé.
Ils le recherchent, mais ils ne comprennent pas vraiment la différence, alors ils disent quelque chose de foiré.
Ci-dessous, la mystérieuse logique que j'ai entendue jusqu'à présent
Je pensais que la raison pour laquelle une telle logique mystérieuse était apparue était que l'information n'était pas préparée et ne pouvait pas être comparée.
Il est difficile d'organiser les informations, mais cela peut faciliter les comparaisons. C'est pourquoi je l'ai fait. Aussi, j'ai essayé d'écrire tous les documents en anglais. J'ai pensé que ce serait bien si les informations pouvaient être recueillies autant que possible.
Je l'ai conçu pour qu'il ait la même structure que possible, y compris l'interface. La classe qui exécute le traitement et la classe de données sont toutes communes.
Nous avons conçu la syntaxe pour réaliser un "prétraitement de codage à la vitesse la plus rapide". En conséquence, il est devenu une interface qui gère la division morphologique et le filtrage des mots partiels en une seule ligne.
Si vous l'aimez, veuillez donner Star ☆ à Github Repository: bow_tone1:
Nous recherchons également des personnes qui peuvent s'améliorer ensemble. Je voudrais également présenter un analyseur ici. RakutenMA, Chansen ...
Recommended Posts