Version 2020 de 100 coups de traitement du langage, qui est célèbre comme une collection de problèmes de traitement du langage naturel, a été publié. Cet article résume les résultats de la résolution du Chapitre 1: Mouvement préparatoire des chapitres 1 à 10 suivants. ..
--Chapitre 1: Mouvement préparatoire
Nous utilisons Google Colaboratory pour obtenir des réponses. Pour plus d'informations sur la configuration et l'utilisation de Google Colaboratory, consultez cet article. Le cahier contenant les résultats d'exécution des réponses suivantes est disponible sur github.
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).
str = 'stressed'
ans = str[::-1]
print(ans)
production
desserts
Extraire la chaîne avec Python
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.
str = 'Patatoku Kashii'
ans = str[::2]
print(ans)
production
Voiture Pat
Obtenez la chaîne de caractères "Patatokukashi" en reliant alternativement les caractères "Pattocar" + "Tax" depuis le début.
str1 = 'Voiture Pat'
str2 = 'Taxi'
ans = ''.join([i + j for i, j in zip(str1, str2)])
print(ans)
production
Patatoku Kashii
Comment utiliser les fonctions Python et zip: Obtenez plusieurs éléments de liste à la fois Comment utiliser la notation d'inclusion de liste Python Concaténer et combiner des chaînes avec Python
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."
import re
str = 'Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.'
str = re.sub('[,\.]', '', str) # ,Quand.Retirer
splits = str.split() #Créer une liste mot par mot séparée par des espaces
ans = [len(i) for i in splits]
print(ans)
production
[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9]
Remplacer la chaîne par Python Split strings in Python Obtenez la taille des objets de différents types avec la fonction len de Python
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 paix. Arthur King peut." En mots 1, 5, 6, 7, 8, 9, 15, 16, Le 19e mot est le premier caractère et les autres mots sont les deux premiers caractères. Créer.
str = 'Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.'
splits = str.split()
one_ch = [1, 5, 6, 7, 8, 9, 15, 16, 19] #Liste de nombres de mots pour extraire un caractère
ans = {}
for i, word in enumerate(splits):
if i + 1 in one_ch:
ans[word[:1]] = i + 1 #Obtenez 1 caractère si dans la liste
else:
ans[word[:2]] = i + 1 #Sinon, obtenez 2 caractères
print(ans)
production
{'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}
Traitement en boucle par Python pour instruction Comment utiliser Python, énumérer: obtenir des éléments de liste et des index Comment écrire une branche conditionnelle par instruction if en Python Dict () et wave brackets pour créer un dictionnaire en Python, notation d'inclusion de dictionnaire
Créez une fonction qui crée un n-gramme à partir d'une séquence donnée (chaîne, liste, etc.). Utilisez cette fonction pour obtenir le mot bi-gramme et la lettre bi-gramme à partir de la phrase "Je suis un PNL".
def ngram(n, lst):
return set(zip(*[lst[i:] for i in range(n)]))
str = 'I am an NLPer'
words_bi_gram = ngram(2, str.split())
chars_bi_gram = ngram(2, str)
print('Mot bi-gram:', words_bi_gram)
print('Personnage bi-gram:', chars_bi_gram)
production
Mot bi-gram: {('am', 'an'), ('I', 'am'), ('an', 'NLPer')}
Personnage bi-gram: {('I', ' '), (' ', 'N'), ('e', 'r'), ('a', 'm'), (' ', 'a'), ('n', ' '), ('L', 'P'), ('m', ' '), ('P', 'e'), ('N', 'L'), ('a', 'n')}
Définir et appeler des fonctions en Python Python, opération de définition avec le type de jeu
Trouvez l'ensemble des bi-grammes de caractères contenus dans "paraparaparadise" et "paragraphe" comme X et Y, respectivement, et trouvez les ensembles de somme, de produit et de différence de X et Y, respectivement. En outre, découvrez si le bi-gram'se'est inclus dans X et Y.
Ici, la fonction ngram
créée en 05 est réutilisée.
str1 = 'paraparaparadise'
str2 = 'paragraph'
X = ngram(2, str1)
Y = ngram(2, str2)
union = X | Y
intersection = X & Y
difference = X - Y
print('X:', X)
print('Y:', Y)
print('Ensemble de somme:', union)
print('Ensemble de produits:', intersection)
print('Ensemble de différences:', difference)
print('X contient-il se:', {('s', 'e')} <= X)
print('Y contient-il se:', {('s', 'e')} <= Y)
production
X: {('a', 'r'), ('a', 'p'), ('s', 'e'), ('p', 'a'), ('r', 'a'), ('i', 's'), ('d', 'i'), ('a', 'd')}
Y: {('p', 'h'), ('a', 'r'), ('a', 'p'), ('p', 'a'), ('g', 'r'), ('r', 'a'), ('a', 'g')}
Ensemble de somme: {('p', 'h'), ('a', 'r'), ('a', 'p'), ('s', 'e'), ('p', 'a'), ('g', 'r'), ('r', 'a'), ('i', 's'), ('a', 'g'), ('d', 'i'), ('a', 'd')}
Ensemble de produits: {('p', 'a'), ('r', 'a'), ('a', 'r'), ('a', 'p')}
Ensemble de différences: {('d', 'i'), ('i', 's'), ('a', 'd'), ('s', 'e')}
X contient-il se: True
Y contient-il se: False
Implémentez une fonction qui prend les arguments x, y, z et renvoie la chaîne "y at x is z". De plus, définissez x = 12, y = «température», z = 22,4 et vérifiez le résultat de l'exécution.
def generate_sentence(x, y, z):
print('{}À l'époque{}Est{}'.format(x, y, z))
generate_sentence(12, 'Température', 22.4)
production
À 12 heures, la température est de 22.4
Conversion de format avec Python, format
Implémentez la fonction de chiffrement qui convertit chaque caractère de la chaîne de caractères donnée selon les spécifications suivantes. Remplacer par (219 --character code) caractères si minuscules Afficher les autres caractères tels quels Utilisez cette fonction pour crypter / décrypter les messages en anglais.
def cipher(str):
rep = [chr(219 - ord(x)) if x.islower() else x for x in str]
return ''.join(rep)
message = 'the quick brown fox jumps over the lazy dog'
message = cipher(message)
print('chiffrement:', message)
message = cipher(message)
print('Décryptage:', message)
production
chiffrement: gsv jfrxp yildm ulc qfnkh levi gsv ozab wlt
Décryptage: the quick brown fox jumps over the lazy dog
Convertir les points de code et les caractères Unicode avec Python Liste des méthodes de chaîne de caractères pour manipuler les majuscules et les minuscules en Python
Créez un programme qui réorganise aléatoirement l'ordre des autres caractères, en laissant le premier et le dernier caractère de chaque mot pour la chaîne de mots séparés par des espaces. Cependant, les mots d'une longueur de 4 ou moins ne sont pas réorganisés. Donnez une phrase en anglais appropriée (par exemple, "Je ne pouvais pas croire que je pouvais réellement comprendre ce que je lisais: le pouvoir phénoménal de l'esprit humain.") Et vérifiez le résultat de l'exécution.
import random
def shuffle(words):
splits = words.split()
if len(splits) > 4:
splits = splits[:1] + random.sample(splits[1:-1], len(splits) - 2) + splits[-1:]
return ' '.join(splits)
words = "I couldn't believe that I could actually understand what I was reading : the phenomenal power of the human mind."
ans = shuffle(words)
print(ans)
production
I what could I reading human : phenomenal the couldn't of understand that believe was the power I actually mind.
Mélanger les éléments de la liste avec Python
Traitement du langage 100 coups sont conçus pour que vous puissiez apprendre non seulement le traitement du langage naturel lui-même, mais également le traitement des données de base et l'apprentissage automatique général. Même ceux qui étudient l'apprentissage automatique dans des cours en ligne pourront pratiquer de très bons résultats, alors essayez-le.
Recommended Posts