


Utilisez Python pour traiter des données textuelles
Objectif de l'expérience
Soyez familier avec la structure de données de base de Python, ainsi que l'entrée et la sortie de fichiers.
Données expérimentales
Utilisez les données d'évaluation et les tâches d'évaluation de la xx conférence sur l'apprentissage automatique en XXXX. Les données comprennent des ensembles de formation et des ensembles de tests. La tâche d'évaluation consiste à prédire si la relation dans l'ensemble de test est positive ou. exemple négatif à travers les données de formation données, donnant 1 ou 0 à la fin de chaque échantillon.
Les données sont décrites comme suit : la première colonne est le type de relation, les deuxième et troisième colonnes sont les noms des personnes, la quatrième colonne est le titre et la cinquième colonne indique si la relation est un exemple positif ou négatif. . 1 est un exemple positif et 0 est un exemple négatif ; La sixième colonne représente l'ensemble d'entraînement.
Événement | Personnage 1 | Personnage 2 | Titre | Relation (0 ou 1) | Ensemble d'entraînement |
---|
L'ensemble de test est décrit dans la figure ci-dessous. Le format est fondamentalement similaire. à l'ensemble de formation, la seule différence est que peu importe qu'il s'agisse d'un exemple positif ou négatif dans la cinquième colonne.
Relation | Personnage 1 | Personnage 2 | Événement |
---|
Contenu expérimental
Traitez les données de l'ensemble d'entraînement, en ne laissant que les cinq premières colonnes, et le texte de sortie est nommé exp1_1.txt.
Catégorie 19 types de relations basées sur les données obtenues lors de la première étape. Le texte généré est stocké dans le dossier exp1_train Selon l'ordre dans lequel les catégories de relations apparaissent, les données de la première catégorie de relations sont stockées dans 1. txt. La deuxième catégorie de relation est stockée dans 2.txt jusqu'à 19.txt.
L'ensemble de test classe chaque échantillon en fonction de la catégorie de relation dans l'ordre des 19 catégories de l'ensemble de formation, c'est-à-dire que les données du même type de relation sont placées dans un fichier texte et que les fichiers de test de 19 catégories sont également généré. Le format reste le même que celui du fichier de test. Stockés dans le dossier exp1_test, les fichiers de chaque catégorie sont toujours nommés 1_test.txt, 2_test.txt... Parallèlement, la position de chaque échantillon dans le jeu de test d'origine est enregistrée, et correspond aux 19 fichiers de test un par un. Par exemple, la ligne de chaque échantillon du premier type de « rumeur de discorde » dans le texte original est enregistrée dans le fichier d'index et enregistrée dans les fichiers index1.txt, index2.txt...
Idées de résolution de problèmes
1 .La première question est de tester nos connaissances sur les opérations sur les fichiers et les listes. La principale difficulté est de lire le nouveau fichier après traitement selon les exigences, un fichier txt est généré. implémentation :
import os # 创建一个列表用来存储新的内容 list = [] with open("task1.trainSentence.new", "r",encoding='xxx') as file_input: # 打开.new文件,xxx根据自己的编码格式填写 with open("exp1_1.txt", "w", encoding='xxx') as file_output: # 打开exp1_1.txt,xxx根据自己的编码格式填写文件如果没有就创建一个 for Line in file_input: # 遍历每一行的文件 arr = Line.split('\t') # 以\t为分隔符读取 if arr[0] not in list: # if the word is not in the list list.append(arr[0]) # add the word to the list file_output.write(arr[0]+"\t"+arr[1]+"\t"+arr[2]+"\t"+arr[3]+"\t"+arr[4]+"\n") # write the line to the file file_input.close() #关闭.new文件 file_output.close() #关闭创建的txt文件
2. La deuxième question examine toujours les opérations sur les fichiers. Sur la base des fichiers générés dans la question 1, les événements sont classés selon le même type d'événements. Il faut déterminer s'ils peuvent être regroupés efficacement en utilisant des conditions de boucle. Jetons un coup d'œil au code
spécifique Implémenter
import os file_1 = open("exp1_1.txt", encoding='xxx') # 打开文件,xxx根据自己的编码格式填写 os.mkdir("exp1_train") # 创建目录 os.chdir("exp1_train") # 修改进程的工作目录(使用该目录) a = file.readline() # 按行读取exp1_1.txt文件 arr = a.split("\t") # 按\t间隔符作为分割 b = 1 #设置分组文件的序列 file_2 = open("{}.txt".format(b), "w", encoding="xxx") # 打开文件,xxx根据自己的编码格式填写 for line in file_1: # 按行读取文件 arr_1 = line.split("\t") # 按\t间隔符作为分割 if arr[0] != arr_1[0]: # 如果读取文件的第一列内容与存入新文件的第一列类型不同 file_2.close() # 关掉该文件 b += 1 # 文件序列加一 f_2 = open("{}.txt".format(b), "w", encoding="xxx") # 创建新文件,以另一种类型分类,xxx根据自己的编码格式填写 arr = line.split("\t") # 按\t间隔符作为分割 f_2.write(arr[0]+"\t"+arr[1]+"\t"+arr[2]+"\t"+arr[3]+"t"+arr[4]+"\t""\n") # 将相同类型的文件写入 f_1.close() # 关闭题目一创建的exp1_1.txt文件 f_2.close() # 关闭创建的最后一个类型的文件
3. Classer davantage les 19 catégories de l'ensemble d'entraînement en fonction de la relation entre les personnages. Nous pouvons parcourir les données à travers le dictionnaire, trouver la relation, mettre la. contenu avec la même relation dans un dossier, et créez-en un nouveau s'il est différent.
import os with open("exp1_1.txt", encoding='xxx') as file_in1: # 打开文件,xxx根据自己的编码格式填写 i = 1 # 类型序列 arr2 = {} # 创建字典 for line in file_in1: # 按行遍历 arr3 = line[0:2] # 读取关系 if arr3 not in arr2.keys(): arr2[arr3] = i i += 1 # 类型+1 file_in = open("task1.test.new") # 打开文件task1.test.new os.mkdir("exp1_test") # 创建目录 os.chdir("exp1_test") # 修改进程的工作目录(使用该目录) for line in file_in: arr = line[0:2] with open("{}_test.txt".format(arr2[arr]), "a", encoding='xxx') as file_out: arr = line.split('\t') file_out.write(line) i = 1 file_in.seek(0) os.mkdir("exp1_index") os.chdir("exp1_index") for line in file_in: arr = line[0:2] with open("index{}.txt".format(arr2[arr]), "a", encoding='xxx') as file_out: arr = line.split('\t') line = line[0:-1] file_out.write(line + '\t' + "{}".format(i) + "\n") i += 1
Utilisez Python pour traiter des données numériques
Objectif de l'expérience
Soyez familier avec la structure de données de base de Python, ainsi que l'entrée et la sortie de fichiers.
Données expérimentales
Le xx Concours Tianchi en xxxx, ce sont aussi les données du xième Big Data Challenge des universités chinoises. Les données comprennent deux tables, à savoir la table du comportement de l'utilisateur mars_tianchi_user_actions.csv et la table des artistes de la chanson mars_tianchi_songs.csv. Le concours ouvre des données échantillonnées sur les artistes de chansons, ainsi que des enregistrements de l'historique du comportement des utilisateurs liés à ces artistes dans un délai de 6 mois (20150301-20150831). Les candidats doivent prédire les données de lecture de l'artiste pour les 2 prochains mois, soit 60 jours (20150901-20151030).
Contenu expérimental
Traitez les données de l'artiste de la chanson mars_tianchi_songs et comptez le nombre d'artistes et le nombre de chansons pour chaque artiste. Le format du fichier de sortie est exp2_1.csv. La première colonne est l'identifiant de l'artiste et la deuxième colonne est le nombre de chansons de l'artiste. La dernière ligne affiche le nombre d'artistes.
Fusionnez la table de comportement de l'utilisateur et la table des artistes de la chanson en une seule grande table en utilisant la chanson song_id comme association. Les noms de chaque colonne sont les première à cinquième colonnes, qui correspondent aux noms de colonnes du tableau des comportements des utilisateurs, et les sixième à dixième colonnes sont les noms de colonnes des deuxième à sixième colonnes du tableau des artistes de la chanson. Le nom du fichier de sortie est exp2_2.csv.
Selon les statistiques des artistes, le volume de lecture de toutes les chansons de chaque artiste chaque jour, le fichier de sortie est exp2_3.csv et chaque colonne est nommée identifiant de l'artiste, date Ds et volume total de lecture de la chanson. Remarque : Seul le nombre d'écoutes de chansons est pris en compte ici, pas le nombre de téléchargements et de collections.
Idées de résolution de problèmes : (Utilisation de la bibliothèque pandas)
1.
(1) Utilisez .drop_duplicates() pour supprimer les valeurs en double
(2) Utilisez .loc[:,‘artist_id’] .value_counts() Découvrez le nombre de fois que le chanteur répète, c'est-à-dire le nombre de chansons pour chaque chanteur
(3) Utilisez .loc[:,‘songs_id’].value_counts() pour savoir si les chansons ne sont pas répétés
import pandas as pd data = pd.read_csv(r"C:\mars_tianchi_songs.csv") # 读取数据 Newdata = data.drop_duplicates(subset=['artist_id']) # 删除重复值 artist_sum = Newdata['artist_id'].count() #artistChongFu_count = data.duplicated(subset=['artist_id']).count() artistChongFu_count = data.loc[:,'artist_id'].value_counts() 重复次数,即每个歌手的歌曲数目 songChongFu_count = data.loc[:,'songs_id'].value_counts() # 没有重复(歌手) artistChongFu_count.loc['artist_sum'] = artist_sum # 没有重复(歌曲)artistChongFu_count.to_csv('exp2_1.csv') # 输出文件格式为exp2_1.csv
Utilisez merge() pour fusionner les deux tables
import pandas as pd import os data = pd.read_csv(r"C:\mars_tianchi_songs.csv") data_two = pd.read_csv(r"C:\mars_tianchi_user_actions.csv") num=pd.merge(data_two, data) num.to_csv('exp2_2.csv')
Utilisez groupby()[].sum() pour des ajouts répétés
import pandas as pd data =pd.read_csv('exp2_2.csv') DataCHongfu = data.groupby(['artist_id','Ds'])['gmt_create'].sum()#重复项相加DataCHongfu.to_csv('exp2_3.csv')
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Python excelle dans les jeux et le développement de l'interface graphique. 1) Le développement de jeux utilise Pygame, fournissant des fonctions de dessin, audio et d'autres fonctions, qui conviennent à la création de jeux 2D. 2) Le développement de l'interface graphique peut choisir Tkinter ou Pyqt. Tkinter est simple et facile à utiliser, PYQT a des fonctions riches et convient au développement professionnel.

Python convient à la science des données, au développement Web et aux tâches d'automatisation, tandis que C convient à la programmation système, au développement de jeux et aux systèmes intégrés. Python est connu pour sa simplicité et son écosystème puissant, tandis que C est connu pour ses capacités de contrôle élevées et sous-jacentes.

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Python est largement utilisé dans les domaines du développement Web, de la science des données, de l'apprentissage automatique, de l'automatisation et des scripts. 1) Dans le développement Web, les cadres Django et Flask simplifient le processus de développement. 2) Dans les domaines de la science des données et de l'apprentissage automatique, les bibliothèques Numpy, Pandas, Scikit-Learn et Tensorflow fournissent un fort soutien. 3) En termes d'automatisation et de script, Python convient aux tâches telles que les tests automatisés et la gestion du système.

Vous pouvez apprendre les bases de Python dans les deux heures. 1. Apprenez les variables et les types de données, 2. Structures de contrôle maître telles que si les instructions et les boucles, 3. Comprenez la définition et l'utilisation des fonctions. Ceux-ci vous aideront à commencer à écrire des programmes Python simples.

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Chargement des fichiers de cornichons dans Python 3.6 Rapport de l'environnement Erreur: modulenotFoundError: NomoduLenamed ...


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP