検索
ホームページバックエンド開発Python チュートリアルPythonを使用してテキストデータを操作するにはどうすればよいですか?

Python を使用してテキスト データを処理する

実験の目的

Python の基本的なデータ構造とファイルの入出力について理解します。

実験データ

xxxx での xx 機械学習カンファレンスの評価データと評価タスクを使用します。データにはトレーニング セットとテスト セットが含まれます。評価タスクは次のとおりです。指定されたトレーニング データを渡し、テスト セット内の関係が正の例か負の例かを予測し、各サンプルの最後に 1 または 0 を与えます。

データは次のように記述されます。最初の列は関係のタイプ、2 番目と 3 番目の列は人物の名前、4 番目の列はタイトル、5 番目の列は関係が肯定的であるかどうかです。または負の例、1 は正の例、0 は負の例、6 列目はトレーニング セットを表します。

イベント 文字 1 文字 2 タイトル 関係 (0 または 1) ) トレーニング セット

テスト セットは次のように説明されます。形式は基本的にトレーニング セットと似ています。唯一の違いは、5 列目であることです。正の例でも負の例でも構いません。

関係キャラクター 1キャラクター 2イベント

実験内容

最初の 5 列のみを残してトレーニング セット データを処理すると、出力テキストの名前は exp1_1.txt になります。

最初のステップで取得したデータに基づいて、19 種類の関係を分類します。生成されたテキストは、exp1_train フォルダーに保存されます。関係カテゴリの出現順序に従って、最初の関係カテゴリのデータは、 2 番目の関係カテゴリは 1.txt に保存され、19.txt までは 2.txt に保存されます。

テスト セットは、トレーニング セットの 19 カテゴリの順序で関係カテゴリに従って各サンプルを分類します。つまり、同じ関係タイプのデータがテキスト ファイルに置かれ、テスト ファイルが19 カテゴリも生成されますが、形式は同じです。テスト ファイルと一貫性があります。 exp1_test フォルダーに保存されている各カテゴリのファイルは、引き続き 1_test.txt、2_test.txt... という名前が付けられます。同時に、元のテスト セット内の各サンプルの位置が記録され、19 個のテスト ファイルに対応します。一つ。たとえば、原文の最初の種類の「噂の不仲説」の各サンプルの行は、インデックス ファイルに記録され、index1.txt、index2.txt...

## というファイルに保存されます。 #解決策の質問のアイデア

1. 最初の質問は、ファイル操作とリストに関する知識をテストすることです。主な困難は、新しいファイルを読み取ることです。要件に従って処理した後、 txt ファイルを参照してください。具体的なコード実装を見てみましょう:

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。2 番目の質問でも、ファイル操作を調べます。質問 1 で生成されたファイルに基づいて、イベントは同じタイプのイベントに従って分類されます。効率的にグループ化できるかどうかを確認します。ループ条件を使用して解決します。具体的な

コード実装

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 を見てみましょう。19 のカテゴリをさらに分類します。文字間の関係に応じたトレーニング セットのデータを辞書で検索し、関係を見つけ、同じ関係を持つコンテンツをフォルダーに入れ、異なる場合は新しいフォルダーを作成できます。

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

Python を使用して数値データを処理する

実験目的

Python の基本的なデータ構造と入出力について理解するファイルの。

実験データ

XXXXのXX Tianchi Competitionは、中国の大学のXX回ビッグデータチャレンジのデータでもあります。データには、ユーザー行動テーブル mars_tianchi_user_actions.csv とソング アーティスト テーブル mars_tianchi_songs.csv の 2 つのテーブルが含まれています。このコンテストでは、サンプリングされた楽曲アーティスト データと、これらのアーティストに関連する 6 か月以内のユーザー行動履歴記録 (20150301 ~ 20150831) が公開されます。出場者は、アーティストの今後 2 か月間、つまり 60 日間 (20150901 ~ 20151030) の再生データを予測する必要があります。

Pythonを使用してテキストデータを操作するにはどうすればよいですか?

Pythonを使用してテキストデータを操作するにはどうすればよいですか?

Pythonを使用してテキストデータを操作するにはどうすればよいですか?

##実験内容

    曲のアーティスト データ mars_tianchi_songs を処理し、アーティスト数と各アーティストの曲数をカウントします。出力ファイルの形式は exp2_1.csv で、最初の列はアーティスト ID、2 列目はアーティスト別の曲数です。最後の行はアーティストの数を出力します。
  • 曲の Song_id を関連付けとして使用して、ユーザー行動テーブルと曲アーティスト テーブルを 1 つの大きなテーブルにマージします。各列の名称は、1列目から5列目までがユーザ行動テーブルの列名と一致し、6列目から10列目は楽曲アーティストテーブルの2列目から6列目の列名と一致する。出力ファイル名はexp2_2.csvです。
  • アーティスト統計によると、毎日の各アーティストの全曲の再生音量、出力ファイルは exp2_3.csv で、各列はアーティスト ID、日付 Ds、合計曲です。再生音量。注: ここでは曲の再生数のみがカウントされ、ダウンロードやコレクションの数はカウントされません。
  • 問題解決のアイデア: (pandas ライブラリの使用)

1.

(1) .drop_duplicates() を使用して重複する値を削除します

(2) .loc[:,‘artist_id’].value_counts() を使用して、歌手がリピートする回数、つまり各歌手の曲数を確認します

(3 ) .loc[:,‘ songs_id’].value_counts() を使用して重複する曲がないかどうかを確認します

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

merge() を使用して 2 つのテーブルをマージします

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')

groupby() を使用します[].sum() 繰り返し加算

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')

以上がPythonを使用してテキストデータを操作するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Pythonの融合リスト:適切な方法を選択しますPythonの融合リスト:適切な方法を選択しますMay 14, 2025 am 12:11 AM

Tomergelistsinpython、あなたはオペレーター、extendmethod、listcomfulting、olitertools.chain、それぞれの特異的advantages:1)operatorissimplebutlessforlargelist;

Python 3の2つのリストを連結する方法は?Python 3の2つのリストを連結する方法は?May 14, 2025 am 12:09 AM

Python 3では、2つのリストをさまざまな方法で接続できます。1)小さなリストに適したオペレーターを使用しますが、大きなリストには非効率的です。 2)メモリ効率が高い大規模なリストに適した拡張方法を使用しますが、元のリストは変更されます。 3)元のリストを変更せずに、複数のリストをマージするのに適した *オペレーターを使用します。 4)Itertools.chainを使用します。これは、メモリ効率が高い大きなデータセットに適しています。

Python Concatenateリスト文字列Python Concatenateリスト文字列May 14, 2025 am 12:08 AM

Join()メソッドを使用することは、Pythonのリストから文字列を接続する最も効率的な方法です。 1)join()メソッドを使用して、効率的で読みやすくなります。 2)サイクルは、大きなリストに演算子を非効率的に使用します。 3)リスト理解とJoin()の組み合わせは、変換が必要なシナリオに適しています。 4)redoce()メソッドは、他のタイプの削減に適していますが、文字列の連結には非効率的です。完全な文は終了します。

Pythonの実行、それは何ですか?Pythonの実行、それは何ですか?May 14, 2025 am 12:06 AM

pythonexexecutionistheprocessoftransforningpythoncodeintoexecutabletructions.1)interpreterreadSthecode、変換intobytecode、thepythonvirtualmachine(pvm)executes.2)theglobalinterpreeterlock(gil)管理委員会、

Python:重要な機能は何ですかPython:重要な機能は何ですかMay 14, 2025 am 12:02 AM

Pythonの主な機能には次のものがあります。1。構文は簡潔で理解しやすく、初心者に適しています。 2。動的タイプシステム、開発速度の向上。 3。複数のタスクをサポートするリッチ標準ライブラリ。 4.強力なコミュニティとエコシステム、広範なサポートを提供する。 5。スクリプトと迅速なプロトタイピングに適した解釈。 6.さまざまなプログラミングスタイルに適したマルチパラダイムサポート。

Python:コンパイラまたはインタープリター?Python:コンパイラまたはインタープリター?May 13, 2025 am 12:10 AM

Pythonは解釈された言語ですが、コンパイルプロセスも含まれています。 1)Pythonコードは最初にBytecodeにコンパイルされます。 2)ByteCodeは、Python Virtual Machineによって解釈および実行されます。 3)このハイブリッドメカニズムにより、Pythonは柔軟で効率的になりますが、完全にコンパイルされた言語ほど高速ではありません。

ループvs whileループ用のpython:いつ使用するか?ループvs whileループ用のpython:いつ使用するか?May 13, 2025 am 12:07 AM

useaforloopwhenteratingoverasequenceor foraspificnumberoftimes; useawhileloopwhentinuninguntinuntilaConditionismet.forloopsareidealforknownownownownownownoptinuptinuptinuptinuptinutionsituations whileoopsuitsituations withinterminedationations。

Pythonループ:最も一般的なエラーPythonループ:最も一般的なエラーMay 13, 2025 am 12:07 AM

pythonloopscanleadtoErrorslikeinfiniteloops、ModifiningListsDuringiteration、Off-Oneerrors、Zero-dexingissues、およびNestededLoopinefficiencies.toavoidhese:1)use'i

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません