Le débutant en Python a essayé 100 traitements de langage Knock 2015 (00 ~ 04)

Préface

Je me demandais s'il y avait un site où je pourrais pratiquer python (3.X) pour tuer le temps, mais j'ai trouvé un site appelé Knock 2015 avec 100 traitements de langage, donc j'ai essayé seulement les cinq premiers problèmes. http://www.cl.ecei.tohoku.ac.jp/nlp100/

Veuillez indiquer s'il y a quelque chose qui ne va pas avec cela.

00. Ordre inverse des chaînes

Récupère une chaîne dans laquelle les caractères de la chaîne "accentués" sont disposés à l'envers (de la fin au début).

00.py


s = "stressed"
print(s[::-1])
desserts

Dans s [i: j: k], cela signifie que k morceaux de s [j-1] sont sautés de s [i], donc s [:: -1] signifie de la fin au début un par un. Droite.

01. «Patatokukashi»

Retirez les 1er, 3e, 5e et 7e caractères de la chaîne de caractères "Patatokukashi" et récupérez la chaîne de caractères concaténée.

01.py


s = "Patatoku Kashii"
print(s[::2])
Voiture Pat

C'est une application de 00. (Je ne peux penser à rien en particulier)

02. "Patcar" + "Tax" = "Patatokukasie"

Récupérez la chaîne de caractères "Patatokukashi" en reliant alternativement les caractères "Pattocar" + "Tax" depuis le début.

02.py


s = ""
for i,j in zip("Voiture Pat", "Taxi"):
    s += i+j
print(s)
Patatoku Kashii

Il y avait une fonction zip pratique qui vous permet de parcourir plusieurs séquences à la fois, vous pouvez donc l'utiliser pour rassembler les caractères un par un et les coller ensemble.

03. Taux circonférentiel

Décomposez la phrase "Maintenant, j'ai besoin d'un verre, alcoolique bien sûr, après les lourdes conférences sur la mécanique quantique."

03.py


s = "Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics."
count_list = []
for i in s.split():
    count_list.append(len(i.strip(",.")))
print(count_list)
[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9]

Quand j'ai vu ce problème pour la première fois, où était le facteur du rapport de circonférence? J'ai pensé, Si vous regardez de plus près, c'est comme ça ... ~~ C'est trop agressif ~~

La façon de faire est de séparer les chaînes avec split (), de supprimer les ',' et '.' Avec strip, et obtenir le nombre de caractères avec len (). On a l'impression de traiter en boucle autant que cela est divisé.

04. Symbole d'élément

Décomposez la phrase "Salut, il a menti parce que le bore ne pouvait pas oxyder le fluor. Les nouvelles nations pourraient également signer la clause de sécurité de la paix. Arthur King Can." Le 19e mot est le premier caractère, et les autres mots sont les deux premiers caractères, et le tableau associatif (type dictionnaire ou type de carte) de la chaîne de caractères extraite à la position du mot (quel nombre de mots depuis le début) Créer.

04.py


s = "Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can."
dict = {}
for (i, w) in enumerate(s.replace(".", "").split(), 1):
    if i in (1,5,6,7,8,9,15,16,19):
        dict.update({w[0]:i})
    else:
        dict.update({w[:2]:i})
print(dict)
{'H': 1, 'He': 2, 'Li': 3, 'Be': 4, 'B': 5, 'C': 6, 'N': 7, 'O': 8, 'F': 9, 'Ne': 10, 'Na': 11, 'Mi': 12, 'Al': 13, 'Si': 14, 'P': 15, 'S': 16, 'Cl': 17, 'Ar': 18, 'K': 19, 'Ca': 20}

J'ai utilisé la fonction enumerate pour obtenir l'élément avec un index lors de la boucle. Avec cela, obtenez la chaîne de caractères et l'index avec le «.» Supprimé, et seulement le premier caractère pour le 1,5,6,7,8,9,15,16,19e, et jusqu'au deuxième caractère sinon. , Et ainsi de suite, écrivez une instruction if et vous avez terminé.

J'ai vu le symbole de l'élément après un long moment. ~~ Au fait, qu'est-ce que Mi? ~~


J'aimerais continuer quand j'en ai envie.

Recommended Posts

Le débutant en Python a essayé 100 traitements de langage Knock 2015 (05 ~ 09)
Le débutant en Python a essayé 100 traitements de langage Knock 2015 (00 ~ 04)
100 Language Processing Knock Chapitre 1 (Python)
100 Language Processing Knock Chapitre 2 (Python)
J'ai essayé 100 traitements linguistiques Knock 2020
100 traitements de langage avec Python
100 Language Processing Knock Chapitre 1 en Python
100 coups de traitement linguistique (2020): 28
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 3
100 traitements de langage avec Python (chapitre 3)
100 coups de traitement linguistique (2020): 38
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 1
100 traitement de la langue frapper 00 ~ 02
100 Language Processing Knock Chapitre 1 par Python
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 2
100 traitements de langage avec Python (chapitre 2, partie 2)
100 traitements de langage avec Python (chapitre 2, partie 1)
100 traitements linguistiques Knock 2020 [00 ~ 39 réponse]
100 langues de traitement knock 2020 [00-79 réponse]
100 traitements linguistiques Knock 2020 [00 ~ 69 réponse]
100 Language Processing Knock 2020 Chapitre 1
100 coups de traitement du langage amateur: 17
100 traitements linguistiques Knock 2020 [00 ~ 49 réponse]
Python: traitement du langage naturel
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
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 14-16
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 07-09
Une personne inexpérimentée en Python tente de frapper 100 traitement du langage 10 ~ 13
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 05-06
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 00-04
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 Language Processing Knock-25: Extraction de modèles
Traitement du langage 100 Knock-87: similitude des mots
100 Language Processing Knock-56: analyse de co-référence
Résolution de 100 traitements linguistiques Knock 2020 (01. "Patatokukashi")
100 coups de traitement du langage amateur: Résumé
100 Language Processing Knock 2020 Chapitre 2: Commandes UNIX
100 Language Processing Knock 2015 Chapitre 5 Analyse des dépendances (40-49)
100 Language Processing Knock 2020 Chapitre 4: Analyse morphologique
100 Language Processing Knock 2020 Chapitre 9: RNN, CNN
100 Language Processing Knock-55: extraction d'expressions uniques
100 Language Processing Knock-82 (mot de contexte): Extraction de contexte
100 Language Processing Knock: Chapitre 1 Mouvement préparatoire
100 Language Processing Knock 2020 Chapitre 6: Apprentissage automatique
100 Traitement du langage Knock Chapitre 4: Analyse morphologique
Traitement du langage 100 knock-86: affichage vectoriel Word
100 Language Processing Knock 2020 Chapitre 10: Traduction automatique (90-98)
100 Language Processing Knock 2020 Chapitre 5: Analyse des dépendances