[JAVA] Processus de nettoyage des phrases japonaises

Aperçu

Lorsqu'une phrase japonaise est soumise à une analyse morphologique, des espaces, des signes de ponctuation, des balises HTML, etc. dans la phrase interfèrent avec l'analyse. Par conséquent, le traitement de nettoyage est appliqué pour ne laisser que les informations nécessaires à l'analyse morphologique.

Environnement d'exécution

OS: Windows 7 Langue: Java

table des matières

    1. Supprimer les balises HTML
  1. Unification des angles pleins et demi
    1. Supprimer le symbole

1. Supprimer les balises HTML

<td><tr>

Si la balise HTML reste, les contenus "td", "tr", etc. peuvent être reconnus comme des mots, supprimez-les donc. Si vous collez les phrases supprimées ensemble, vous risquez de vous retrouver avec des mots étranges, alors ajoutez un symbole de rupture de mot (ici, "/").

sample


Pattern.compile("<.*?>").matcher(sentence).replaceAll("/");

Exemple: \ \ Volume 1 \ </ td> \ A propos du mouvement d'un objet \ </ td>; ⇒ // Volume 1 // A propos du mouvement des objets /

2. Unification des angles pleins et demi

AabB12345 Aiueokakikukeko

Les phrases dans lesquelles une demi-largeur pleine largeur d'alphabets, une demi-largeur pleine largeur de nombres et une demi-largeur pleine largeur de katakana sont mélangées ne sont pas bonnes pour les données et l'apparence, alors unifiez-les à l'une ou l'autre.

sample


Normalizer.normalize(sentence, Normalizer.Form.NFKC);

Le normaliseur qui peut être utilisé à partir de java6 est pratique Avec le processus ci-dessus ・ Alphabet pleine largeur ⇒ Alphabet demi-largeur ・ Nombre pleine largeur ⇒ Nombre demi-largeur ・ Katakana demi-largeur ⇒ Katakana pleine largeur Peut être converti en. (Les symboles sont également convertis de la pleine largeur à la demi-largeur)

Exemple: AbB12345 Aikaki ⇒ AabB12345 Aikaki

3. 3. Suppression des symboles et des espaces

Que dois-je faire aujourd'hui? ..

S'il reste un espace dans la phrase, il ne sera pas reconnu comme un saut de mot lors de l'analyse morphologique. Les symboles apparaissant fréquemment tels que "." Sont sujets au bruit lors de l'analyse morphologique. Comme pour le traitement des balises, si vous collez les phrases supprimées ensemble, vous risquez de vous retrouver avec des mots étranges, alors ajoutez un symbole de rupture de mot.

sample


Pattern.compile("[\\p{Punct}!! "# $% & '() = ~ |' {+ *} <>? _- ^ \ @" ;: ",. ・]+").matcher(sentence).replaceAll("/");

Exemple: que dois-je faire aujourd'hui? .. ⇒ Aujourd'hui / que faire /

Référence: https://www.slideshare.net/tsudaa/ss-36658329 http://qiita.com/kasei-san/items/3ce2249f0a1c1af1cbd2

Recommended Posts

Processus de nettoyage des phrases japonaises
Localisation japonaise d'Eclipse
[Localisation japonaise de la gemme: devise]
Résumé du traitement des erreurs Java
[Rails] Localisation japonaise des messages d'erreur
Implémentation du traitement asynchrone dans Tomcat
Flux de traitement de base de Java Stream
[Kotlin] Un exemple de traitement utilisant Enum
Ordre de traitement dans le programme