[PYTHON] 100 coups de traitement du langage amateur: Résumé

Ceci est un résumé des records de défi de 100 Language Processing Knock 2015.

: avertissement: ** Ceci n'est pas un record de défi de 100 Language Processing Knock 2020. L'ancienne version 2015 est la cible. Remarque: bangbang: **

Environnement difficile

Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64 bits). (Seuls Problème 00 et Problème 01 sont Python 2.7.)

Chapitre 1: Mouvement préparatoire

Passez en revue certains sujets avancés dans les langages de programmation tout en travaillant sur des sujets qui traitent du texte et des chaînes.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 00 tranche,print()
Problème 01 tranche
Problème 02 Anaconda、zip()itertools.zip_longest(),Avantitérable*Sivousajoutez,ilseraséparéenarguments,str.join()、functools.reduce()
Problème 03 len()、list.append()str.split()list.count()
Problème 04 enumerate()、Python3.Le hachage est aléatoire par défaut après 3
Problème 05 n-gram、range()
Problème 06 set()set.union()、set.intersection()、set.difference()
Problème 07 str.format()string.Templatestring.Template.substitute()
Problème 08 chr()、str.islower()、input(), Opérateur quantique
Problème 09 Typoglycemia、random.shuffle()

Chapitre 2: Principes de base des commandes UNIX

Découvrez les outils UNIX utiles pour la recherche et l'analyse des données. Grâce à ces réimplémentations, vous ferez l'expérience de l'écosystème des outils existants tout en améliorant vos compétences en programmation.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 10 [CommandesUNIX]manLocalisationjaponaise,open(), Script Shell,[Commandes UNIX]wc,chmod, Autorisation d'exécution de fichier
Problème 11 str.replace()、[Commandes UNIX]sedtrexpand
Problème 12 io.TextIOBase.write()、[Commandes UNIX]cut,diff、Commandes UNIXの短いオプションと長いオプション
Problème 13 [CommandesUNIX]paste、str.rstrip(), Définition Python du "caractère vide"
Problème 14 [Commandes UNIX]echo,read,head
Problème 15 io.IOBase.readlines()、[Commandes UNIX]tail
Problème 16 [CommandesUNIX]split、math.ceil()、str.format()//Peut être tronqué et divisé par
Problème 17 set.add()、[Commandes UNIX]cut,sort,uniq
Problème 18 Style Lambda
Problème 19 Notationd'inclusiondeliste,itertools.groupby()、list.sort()

Chapitre 3: Expressions régulières

Diverses informations et connaissances peuvent être extraites en appliquant des expressions régulières à la description du balisage sur la page Wikipédia.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 20 ManipulationJSON,gzip.open()、json.loads()
Problème 21 Expressionrégulière,notationdechaînebrute,raise、re.compile()、re.regex.findall()
Problème 22 [Expressions régulières]Match gourmand,Match non gourmand
Problème 23 [Expressions régulières]Retour référence
Problème 24
Problème 25 [Expressionsrégulières]Unevisionprospectiveaffirmative,sorted()
Problème 26 re.regex.sub()
Problème 27
Problème 28
Problème 29 UtilisationdesservicesWeb,urllib.request.Request()、urllib.request.urlopen()、bytes.decode()

Chapitre 4: Analyse morphologique

Appliquer l'analyseur morphologique MeCab au roman "Je suis un chat" de Natsume Soseki et obtenir les statistiques des mots du roman.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 30 conda、pip、apt、[MeCab]Installation,Utilisation, analyse morphologique, générateur,yield
Problème 31 [Analyse morphologique]Type de surface
Problème 32 [Analyse morphologique]Prototype / forme de base, notation d'inclusion de liste
Problème 33 [Analyse morphologique]Notation inclusive d'une liste de doubles boucles
Problème 34
Problème 35 [Analyse morphologique]Concaténation de nomenclature
Problème 36 collections.Counter、collections.Counter.update()
Problème 37 [matplotlib]Installation,graphique à barres,Affichage japonais,Gamme d'axes,Affichage de grille
Problème 38 [matplotlib]histogramme
Problème 39 [matplotlib]Diagramme de dispersion, loi de Zipf

Chapitre 5: Analyse des dépendances

Appliquer l'analyseur de dépendances CaboCha à "Je suis un chat" et expérimenter le fonctionnement de l'arbre de dépendances et l'analyse syntaxique.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 40 [CaboCha]Installation,Commentutiliser,__str__()、__repr__()、repr()
Problème 41 [Analyse des dépendances]Phrase et dépendance
Problème 42
Problème 43
Problème 44 [pydot-ng]Installation,Comment vérifier la source des graphiques dirigés et des modules réalisés en Python
Problème 45 [Analyse des dépendances]Cas,[Commandes UNIX]grep
Problème 46 [Analyse des dépendances]Cadre de cas / grammaire de cas
Problème 47 [Analyse des dépendances]Verbe fonctionnel
Problème 48 [Analyse des dépendances]Chemin de la nomenclature à la racine
Problème 49 [Analyse des dépendances]Chemin de dépendance entre nomenclature

Chapitre 6: Traitement du texte anglais

Un aperçu des différentes technologies de base pour le traitement du langage naturel par le biais du traitement de texte anglais à l'aide de Stanford Core NLP.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 50 Générateur
Problème 51
Problème 52 Tige de mot, tige, tige de boule de neige: comment utiliser
Problème 53 [StanfordCoreNLP]Installation,Commentutiliser,subprocess.run(),AnalyseXML,xml.etree.ElementTree.ElementTree.parse()、xml.etree.ElementTree.ElementTree.iter()
Problème 54 [StanfordCoreNLP]Partie,Lemme,analyseXML,xml.etree.ElementTree.Element.findtext()
Problème 55 [StanfordCoreNLP]Représentationpropriétaire,XPath,xml.etree.ElementTree.Element.iterfind()
Problème 56 [Stanford Core NLP]Co-référence
Problème 57 [Stanford Core NLP]Dépendant,[pydot-ng]Graphique dirigé
Problème 58 [Stanford Core NLP]matière,prédicat,Objet
Problème 59 [StanfordCoreNLP]Analysedelastructuredesclauses,ExpressionS,appelrécursif,sys.setrecursionlimit()、threading.stack_size()

Chapitre 7: Base de données

Apprenez à créer et à rechercher des bases de données à l'aide de Key Value Store (KVS) et de NoSQL. Nous développerons également un système de démonstration utilisant CGI.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 60 [LevelDB]Installation,Commentutiliser,str.encode()、bytes.decode()
Problème 61 [LevelDB]Recherche,pointdecodeUnicode,ord()
Problème 62 [LevelDB]Énumération
Problème 63 ManipulationJSON,json.dumps()
Problème 64 [MongoDB]Installation,Comment utiliser,Shell interactif,Insertion en vrac,indice
Problème 65 [MongoDB]Chercher,Gestion des types introuvables dans les tables de conversion de format ObjectId et JSON
Problème 66
Problème 67
Problème 68 [MongoDB]Trier
Problème 69 ServeurWeb,CGI,échappementHTML,html.escape()、html.unescape()、[MongoDB]Rechercher plusieurs conditions

Chapitre 8: Apprentissage automatique

Construire un analyseur de réputation (analyseur positif / négatif) par apprentissage automatique. De plus, vous apprendrez à évaluer la méthode.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 70 [Apprentissage automatique]Classification automatique,étiquette,Apprendre avec l'enseignant / apprendre sans l'enseignant
Problème 71 Stop mot, assertion,assert
Problème 72 [Apprentissage automatique]Identité
Problème 73 [NumPy]Installation,Fonctionnement de la matrice,[Apprentissage automatique]Retour logistique,Vectorisation,Fonction hypothétique,Fonction Sigmaid,Fonction objective,La méthode de descente la plus raide,Taux d'apprentissage et nombre de répétitions
Problème 74 [Apprentissage automatique]Prévoir
Problème 75 [Apprentissage automatique]Le poids de l'identité,[NumPy]Obtenir l'index des résultats triés
Problème 76
Problème 77 Taux de réponse correcte, taux de précision, taux de rappel, score F1
Problème 78 [Apprentissage automatique]Test croisé en 5 divisions
Problème 79 [matplotlib]Graphique linéaire

Chapitre 9: Méthode de l'espace vectoriel (I)

Trouvez la matrice de cooccurrence de contexte de mot dans un grand corpus et apprenez le vecteur qui représente la signification du mot. Le mot vecteur est utilisé pour trouver la similitude et l'analogie des mots.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 80 Vectorisationdemots,bz2.open()
Problème 81 [Vecteur de mot]Gérer les mots composés
Problème 82
Problème 83 Sérialisation/sérialisationd'objets,pickle.dump()、pickle.load()
Problème 84 [Vecteurdemot]MatricedecontexteWord,PPMI(PositiveMutualInformationAmount),[SciPy]Installation,Traitement de la matrice clairsemée,Sérialisation,collections.OrderedDict
Problème 85 Analyseencomposantesprincipales(ACP),[scikit-learn]Installation,PCA
Problème 86
Problème 87 Similitude cosinus
Problème 88
Problème 89 Constructivité additive, analogie

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

Utilisez word2vec pour apprendre le vecteur qui représente la signification du mot et évaluez-le en utilisant les bonnes réponses. De plus, vous ferez l'expérience du clustering et de la visualisation vectorielle.

Lien vers l'article Ce que j'ai appris principalement, ce que j'ai appris dans les commentaires, etc.
Problème 90 [word2vec]Installation,Comment utiliser
Problème 91
Problème 92
Problème 93
Problème 94
Problème 95 Coefficient de corrélation de rang Spearman, ajout de membre dynamique à l'instance,**Vous pouvez rouler
Problème 96
Problème 97 Classification, regroupement, K-Means、[scikit-learn]K-Means
Problème 98 Regroupement hiérarchique, méthode de Ward, dendrogramme,[SciPy]Méthode Ward,Dendrogramme
Problème 99 t-SNE、[scikit-learn]t-SNE、[matplotlib]Diagramme de dispersion étiqueté

Après 100 coups

Cela a pris 8 mois, mais j'ai réussi à résister à 100 coups. Je suis très reconnaissant au Dr Okazaki d'avoir publié un si beau numéro avec un corpus de données.

De plus, j'ai été très encouragé par les commentaires, les demandes d'édition, les likes, les stocks, les suivis et les introductions sur les blogs et SNS. Merci à tous de continuer jusqu'à la fin. Merci beaucoup.

J'espère que l'article que vous avez publié sera utile à ceux qui suivent.

Recommended Posts

100 coups de traitement du langage amateur: Résumé
100 coups de traitement du langage amateur: 09
100 coups en traitement du langage amateur: 47
100 coups de traitement du langage amateur: 67
100 coups de traitement linguistique (2020): 28
100 coups de traitement linguistique (2020): 38
100 traitement de la langue frapper 00 ~ 02
100 coups de traitement du langage amateur: 41
100 coups de traitement du langage amateur: 71
100 coups de traitement du langage amateur: 56
100 coups de traitement du langage amateur: 50
100 traitements linguistiques Knock 2020 [00 ~ 69 réponse]
100 coups de traitement du langage amateur: 59
100 coups de traitement du langage amateur: 70
100 coups de traitement du langage amateur: 62
100 coups de traitement du langage amateur: 60
100 Language Processing Knock 2020 Chapitre 1
100 coups de langue amateur: 30
100 coups de langue amateur: 06
100 coups de traitement du langage amateur: 84
100 traitements linguistiques Knock 2020 [00 ~ 49 réponse]
100 coups de traitement du langage amateur: 81
100 coups de langue amateur: 33
100 coups de traitement du langage amateur: 46
100 coups de traitement du langage amateur: 88
100 coups de traitement du langage amateur: 89
100 coups de traitement du langage amateur: 40
100 coups de traitement du langage amateur: 45
100 coups de traitement du langage amateur: 43
100 coups de traitement du langage amateur: 55
100 Traitement du langage Knock-52: Stemming
100 coups de traitement du langage amateur: 22
100 coups de traitement du langage amateur: 61
100 coups de traitement du langage amateur: 94
100 coups de traitement du langage amateur: 54
100 coups de langue amateur: 04
100 Traitement du langage Knock Chapitre 1
100 coups de traitement du langage amateur: 63
100 coups de traitement du langage amateur: 78
100 coups de traitement du langage amateur: 12
100 coups de traitement du langage amateur: 14
100 coups de langue amateur: 08
100 coups de traitement du langage amateur: 42
100 coups de traitement du langage amateur: 19
100 coups de traitement du langage amateur: 73
100 coups de traitement du langage amateur: 75
100 coups de traitement du langage amateur: 98
100 coups de traitement du langage amateur: 32
100 coups de traitement du langage amateur: 96
100 coups de traitement du langage amateur: 87
100 coups de traitement du langage amateur: 72
100 coups de traitement du langage amateur: 79
100 coups de traitement du langage amateur: 23
100 coups de langue amateur: 00
100 coups de langue amateur: 02
100 coups de traitement du langage amateur: 37
100 coups de traitement du langage amateur: 21
100 coups de traitement du langage amateur: 68
100 Language Processing Knock 2020 Chapitre 3
100 coups de traitement du langage amateur: 90
100 coups de traitement du langage amateur: 74