Lorsque je cherchais ce que je voulais sur Amazon, j'ai senti que le niveau des explications japonaises pour les produits suspects s'était amélioré récemment, et j'ai été impressionné par le fait que j'étais enthousiaste à l'idée d'étudier même si le japonais était difficile. J'ai donc décidé de faire un programme pour affaiblir le japonais.
J'ai utilisé ce qui suit.
J'ai défini les modèles japonais suivants selon lesquels les étrangers sont susceptibles de faire des erreurs ou ne peuvent pas juger de différences subtiles dans les nuances.
- Mauvais assistant
- Écrivez la partie qui devrait être dans la forme passée dans la forme actuelle
- Écrivez un mot dans un autre synonyme
Tout semble étrange. Ici, les conditions dans lesquelles se produisent des erreurs dans les mots auxiliaires et des erreurs de sélection sont les suivantes.
・ Applicable uniquement lorsque la partie du mot précédent est "nom" ・ Le modèle d'erreur est le suivant. "" Est "<=>" est "" et "<=>" de "" à "<=>"
Le code ressemble à ceci.
def mistake_ppp(ppp):
substitute_ppp = ppp
mistake_set = np.array([["Mais", "Est"],["alors", "À"]["De", "Que"]])
target_pattern = mistake_set[np.any(mistake_set == ppp, axis = 1)]
if len(target_pattern) > 0:
the_other = target_pattern[np.where(target_pattern != ppp)]
substitute_ppp = the_other[0]
return substitute_ppp
Quand j'écris une longue phrase en anglais, j'oublie parfois de faire correspondre le système de temps dans la seconde moitié, et je pense que c'est le même sentiment.
Les conditions et les détails de traitement de cette erreur sont les suivants.
・ Lorsque le verbe auxiliaire "ta" apparaît, remplacez le mot qui le précède par la forme courante.
Le code (extrait) ressemble à ceci.
elif pos == "Verbe auxiliaire" and word == "Ta":
#Remplacez le mot précédent par le formulaire actuel
word_list[word_idx - 1] = basic_list[word_idx - 1]
xfmd_basic = basic
xfmd_word = ""
J'ai l'impression d'avoir sauvegardé une liste des mots originaux (word_list) et sa liste standard (basic_list). Le reste est supprimé en remplaçant le verbe auxiliaire "ta" par un caractère vide.
Les conditions de cette gestion des erreurs sont les suivantes.
・ La cible de conversion n'est que les verbes, les adjectifs et la nomenclature. ・ Le verbe "to" n'est pas converti. ・ Les synonymes de synonymes se réfèrent à ceux qui ont la même partie et la même forme de base que l'original et doivent être en japonais uniquement.
De plus, le traitement spécifique est le suivant.
- Utilisez WordNet pour obtenir une liste de synonymes pour le mot cible
- Sélectionnez un synonyme dans la liste des synonymes
- Convertissez le formulaire d'utilisation en le même que le mot original et remplacez-le par le mot original
Pour WordNet, j'ai téléchargé et utilisé * Wordnet japonais et WordNet anglais dans une base de données sqlite3 * depuis ici.
Le code pour 2 ressemble à ceci.
def choose_synonym(word):
synonym = word
pos, basic = analyze_pos(word)
synonyms = search_synonyms(word)
idxs = np.arange(0, len(synonyms), 1)
np.random.shuffle(idxs)
for idx in idxs:
synonym_pos, synonym_basic = analyze_pos(synonyms[idx])
if synonym_pos == pos and synonym_basic == basic:
synonym = synonyms[idx]
break
return synonym
Le traitement du contenu et du code de
search_synonymes (word) '' qui effectue 1 est susceptible d'être long s'il est écrit ici, donc Structure WordNet et recherche de synonymes ). Veuillez vous y référer pour plus de détails.
En 3, comme il ne pouvait pas être réalisé par la fonction standard de Mecab, les données du formulaire d'utilisation de chaque partie contenue dans les données du dictionnaire (mecab-ipadic-2.7.0-20070801.tar.gz) utilisées dans Mecab sont utilisées. J'ai essayé de l'utiliser.
def transform(pos, basic, conjugate):
target_word = None
dict_file = None
if pos == "verbe":
dict_file = "Verb"
elif pos == "adjectif":
dict_file = "Adj"
elif pos == "nom":
dict_file = "Noun"
with open("../dict/pos/" + dict_file + ".csv", "rb") as f:
words = f.readlines()
for w in words:
winfo = w.decode('euc_jp',errors ='ignore').split(",")
conj = winfo[9]
basicform = winfo[10]
if basicform == basic and conj == conjugate:
target_word = winfo[0]
break
return target_word
J'ai été un peu troublé par le problème de code de caractère lors de la lecture de csv. C'est encore en développement (je ne l'ai pas vu car je n'en ai pas d'autre mais je ne peux pas y aller)
Le flux de traitement est résumé ci-dessous. Le nom du sous-processus a été raccourci, mais connaissez-vous la correspondance?
Je l'ai appliqué à la description (Amazon) des AirPods Pro récemment achetés.
\begin{align*}
&{\Grand bruit muet au son.}\\
&{\petit Le microphone détecte les bruits à l'extérieur et à l'intérieur de l'oreille. La fonction anti-bruit qui équilibre le son élimine le bruit avant l'écoute.}\\
\\
&{\Grand Demandez seulement ce que vous voulez demander.}\\
&{\small Si vous souhaitez écouter le Yoko environnant et y répondre, passez en mode de capture de son externe. Appuyez et maintenez simplement le capteur sensible à la pression.}\\
\\
&{\Grand ajustement personnalisé.}\\
&{\petits Les embouts en silicone confortables et portables sont disponibles en 3 tailles. Les trous d'aération sur les embouts permettent d'équilibrer la pression des deux côtés de l'écouteur.}\\
\\
&{\Grande expérience pour la première fois.}\\
&{\Petit pilote de haut-parleur dédié, amplificateur à plage dynamique élevée, puce H1 sont connectés. Il produit un son de haute qualité qui ne peut être imaginé qu'un boîtier compact.}\\
\\
&{\Grand cadre et Siri. Tout est simple.}\\
&{\petit Très facile à connecter avec l'iPhone. Vous pouvez partager la chanson avec deux ensembles d'AirPod ou demander à Siri de lire le message que vous recevez.}\\
\\
&{\Une charge importante est sans fil. Le plaisir est sans fin.}\\
&{\Avec le petit boîtier de chargement sans fil, vous pouvez aller n'importe où avec vos AirPods Pro. Il est compatible avec les chargeurs standard Qi.}
\end{align*}
J'ai quelques soupçons. Je n'aurais peut-être pas acheté ça.
Ce programme en lui-même n'est pas utile, mais je pense qu'il sera utile dans le futur enseignement de la langue japonaise de supprimer les caractéristiques du japonais faible. Les étrangers qui étudient le japonais sont susceptibles de faire des erreurs dans l'apprentissage et de regrouper la tendance à écrire des phrases japonaises, et il semble que chacun d'eux puisse créer un programme d'enseignement de la langue japonaise.
Recommended Posts