[PYTHON] 100 traitement du langage knock-91: Préparation des données d'analogie

Il s'agit de l'enregistrement de la 91e "Préparation des données d'analogie" de Traitement du langage 100 knock 2015. Cette fois, c'est techniquement super facile car il s'agit d'un système de prétraitement pour frapper plus tard.

Lien de référence

Lien Remarques
091.Préparation des données d'analogie.ipynb Lien GitHub du programme de réponse
100 coups de traitement du langage amateur:91 Je vous suis toujours redevable de 100 coups de traitement linguistique

environnement

type version Contenu
OS Ubuntu18.04.01 LTS Il fonctionne virtuellement
pyenv 1.2.15 J'utilise pyenv car j'utilise parfois plusieurs environnements Python
Python 3.6.9 python3 sur pyenv.6.J'utilise 9
3.7 ou 3.Il n'y a aucune raison profonde de ne pas utiliser la série 8
Les packages sont gérés à l'aide de venv

Tâche

Chapitre 10: Méthode de l'espace vectoriel (II)

Au chapitre 10, nous continuerons à travailler sur l'apprentissage des vecteurs de mots du chapitre précédent.

91. Préparation des données d'analogie

Téléchargez Données d'évaluation de l'analogie de Word. La ligne commençant par ":" dans ces données représente le nom de la section. Par exemple, la ligne ": capital-common-countries" marque le début de la section "capital-common-countries". À partir des données d'évaluation téléchargées, extrayez les cas d'évaluation inclus dans la section «famille» et enregistrez-les dans un fichier.

Supplément de problème

Les "données analogiques" semblent être des données d'analogie. Les 10 premières lignes sont présentées ci-dessous. Un deux-points au début, comme «: capital-common-countries», signifie un bloc, suivi de «Athènes Grèce Bagdad Iraq» et la relation entre la capitale et le pays en deux ensembles sur une seule ligne. De cette manière, ce sont des données dans lesquelles des blocs et des dizaines de lignes après qui sont disposés en deux ensembles d'une ligne. Cette fois, nous allons extraire le contenu du bloc familial à partir de ces données.

questions-words.txt


: capital-common-countries
Athens Greece Baghdad Iraq
Athens Greece Bangkok Thailand
Athens Greece Beijing China
Athens Greece Berlin Germany
Athens Greece Bern Switzerland
Athens Greece Cairo Egypt
Athens Greece Canberra Australia
Athens Greece Hanoi Vietnam
Athens Greece Havana Cuba

Répondre

Programme de réponse [091. Préparation de l'analogie data.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/10.%E3%83%99%E3%82%AF%E3%83%88% E3% 83% AB% E7% A9% BA% E9% 96% 93% E6% B3% 95% 20 (II) /091.%E3%82%A2%E3%83%8A%E3%83%AD% E3% 82% B8% E3% 83% BC% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 81% AE% E6% BA% 96% E5% 82% 99.ipynb)

with open('./questions-words.txt') as file_in, \
       open('./091.analogy_family.txt', 'w') as file_out:

    target = False      #Données cibles
    for line in file_in:

        if target:

            #Dans le cas des données cibles, sortie jusqu'à ce qu'elle devienne une autre section
            if line.startswith(': '):
                break
            print(line.strip(), file=file_out)

        elif line.startswith(': family'):

            #Découverte des données cibles
            target = True

Répondre au commentaire

Pour être honnête, je n'ai rien fait de spécial techniquement, donc je n'ai aucun intérêt à expliquer. Si vous le forcez, plus de 90% est un copier-coller de 100 coups de traitement de langue amateur: 91. Les 10 premières lignes du texte résultant sont:

091.analogy_family.txt


boy girl brother sister
boy girl brothers sisters
boy girl dad mom
boy girl father mother
boy girl grandfather grandmother
boy girl grandpa grandma
boy girl grandson granddaughter
boy girl groom bride
boy girl he she
boy girl his her
Omis par la suite

Recommended Posts

100 traitement du langage knock-91: Préparation des données d'analogie
100 langage traitement knock-92 (utilisant Gensim): application aux données d'analogie
100 traitement du langage knock-59: analyse de la formule S
100 coups de traitement linguistique (2020): 28
100 coups de traitement linguistique (2020): 38
100 traitement de la langue frapper 00 ~ 02
Traitement du langage 100 knocks-44: Visualisation des arbres dépendants
100 Language Processing Knock-89: Analogie avec la constitution additive
100 Language Processing Knock-26: suppression du balisage accentué
100 traitements linguistiques Knock 2020 [00 ~ 69 réponse]
100 Language Processing Knock 2020 Chapitre 1
100 traitements linguistiques Knock 2020 [00 ~ 49 réponse]
100 Traitement du langage Knock-52: Stemming
100 Traitement du langage Knock Chapitre 1
100 coups de langue amateur: 07
100 Language Processing Knock 2020 Chapitre 3
100 Language Processing Knock 2020 Chapitre 2
100 coups de traitement du langage amateur: 09
100 coups en traitement du langage amateur: 47
Traitement 100 langues knock-53: Tokenisation
100 coups de traitement du langage amateur: 97
100 traitements linguistiques Knock 2020 [00 ~ 59 réponse]
100 coups de traitement du langage amateur: 67
100 langage de traitement knock-20 (à l'aide de pandas): lecture de données JSON
100 Language Processing Knock-32 (utilisant des pandas): Prototype de verbe
Traitement du langage 100 knocks-45: Extraction de modèles de cas verbaux
100 traitement du langage knock-75 (en utilisant scicit-learn): poids de l'identité
100 traitement du langage knock-93 (en utilisant des pandas): calcul du taux de précision de la tâche d'analogie
100 coups de traitement du langage avec Python 2015
100 traitement du langage Knock-51: découpage de mots
100 Language Processing Knock-58: Extraction de Taple
100 Language Processing Knock-57: Analyse des dépendances
100 traitement linguistique knock-50: coupure de phrase
100 traitement du langage knock-36 (en utilisant des pandas): fréquence d'occurrence des mots
100 Language Processing Knock Chapitre 1 (Python)
100 Language Processing Knock Chapitre 2 (Python)
Vérification des performances du prétraitement des données dans le traitement du langage naturel
100 Language Processing Knock-25: Extraction de modèles
Traitement du langage 100 Knock-87: similitude des mots
Traitement du langage 100 knocks-49: Extraction de chemins de dépendances entre nomenclature
J'ai essayé 100 traitements linguistiques Knock 2020
100 Language Processing Knock-56: analyse de co-référence
Résolution de 100 traitements linguistiques Knock 2020 (01. "Patatokukashi")
Apprenez facilement 100 traitements linguistiques Knock 2020 avec "Google Colaboratory"
Vue d'ensemble du traitement du langage naturel et de son prétraitement des données
100 coups de traitement du langage amateur: Résumé
100 traitements linguistiques knock-77 (en utilisant scicit-learn): mesure du taux de réponse
100 traitement de la langue knock-42: Affichage de la phrase de la personne concernée et de la personne concernée
Traitement linguistique 100 knocks-29: Obtenez l'URL de l'image du drapeau
100 langage de traitement knock-70 (en utilisant Stanford NLP): Obtention et formatage des données
100 Language Processing Knock 2020 Chapitre 2: Commandes UNIX
100 Language Processing Knock 2015 Chapitre 5 Analyse des dépendances (40-49)
100 traitements de langage avec Python
100 Language Processing Knock Chapitre 1 en Python
100 Language Processing Knock 2020 Chapitre 4: Analyse morphologique
100 Language Processing Knock 2020 Chapitre 9: RNN, CNN
100 traitement du langage knock-76 (en utilisant scicit-learn): étiquetage
100 Language Processing Knock-55: extraction d'expressions uniques
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 3
100 Language Processing Knock-82 (mot de contexte): Extraction de contexte
100 traitements de langage avec Python (chapitre 3)