[PYTHON] 100 coups de traitement du langage amateur: 17

C'est un record de défi de 100 langues de traitement knock 2015. L'environnement est Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64 bits). Cliquez ici pour une liste des coups passés (http://qiita.com/segavvy/items/fb50ba8097d59475f760).

Chapitre 2: Principes de base des commandes UNIX

hightemp.txt est un fichier qui stocke l'enregistrement de la température la plus élevée au Japon dans le format délimité par des tabulations de «préfecture», «point», «℃» et «jour». Créez un programme qui effectue le traitement suivant et exécutez hightemp.txt en tant que fichier d'entrée. De plus, exécutez le même processus avec une commande UNIX et vérifiez le résultat de l'exécution du programme.

17. Différences dans la première colonne

Recherchez le type de chaîne de caractères dans la première colonne (un ensemble de chaînes de caractères différentes). Utilisez les commandes sort et uniq pour confirmation.

Le code fini:

main.py


# coding: utf-8

fname = 'hightemp.txt'
with open(fname) as data_file:

	set_ken = set()
	for line in data_file:
		cols = line.split('\t')
		set_ken.add(cols[0])

for n in set_ken:
	print(n)

Résultat de l'exécution:

Résultat d'exécution 1


Préfecture de Yamagata
Préfecture de Wakayama
Préfecture de Gifu
Préfecture d'Osaka
Préfecture d'Ehime
Saitama
Préfecture d'Aichi
Préfecture de Kochi
Préfecture de Gunma
Préfecture de Chiba
Préfecture de Yamanashi
Préfecture de Shizuoka

Résultat d'exécution 2


Préfecture de Gifu
Préfecture de Yamagata
Préfecture de Shizuoka
Préfecture d'Aichi
Préfecture d'Osaka
Préfecture de Kochi
Préfecture de Gunma
Préfecture de Chiba
Préfecture de Yamanashi
Préfecture d'Ehime
Préfecture de Wakayama
Saitama

Quand je l'ai exécuté deux fois, l'ordre a changé. Ceci est dû au fait que le hachage est randomisé comme décrit dans Option -R de la ligne de commande. Je pense.

Script shell pour vérifier les commandes UNIX:

test.sh


#!/bin/sh

#Découpez la première colonne, triez, déduplication
cut --fields=1 hightemp.txt | sort | uniq > result_test.txt

#Exécuter dans le programme Python, trier pour comparaison par diff
python main.py | sort > result.txt

#Vérifiez le résultat
diff --report-identical-files result.txt result_test.txt

Confirmation des résultats:

Terminal


segavvy@ubuntu:~/document/100 traitement du langage Knock 2015/17$ ./test.sh
Résultat du fichier.txt et résultat_test.txt est le même

C'est tout pour le 18e coup. Si vous avez des erreurs, j'apprécierais que vous les signaliez.

Recommended Posts

100 coups de traitement du langage amateur: 17
100 coups de langue amateur: 07
100 coups de traitement du langage amateur: 09
100 coups en traitement du langage amateur: 47
100 coups de traitement du langage amateur: 97
100 coups de traitement du langage amateur: 67
100 coups de traitement du langage amateur: Résumé
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: 83
100 coups de traitement du langage amateur: 95
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: 05
100 coups de langue amateur: 00
100 coups de langue amateur: 02