検索
ホームページバックエンド開発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の主な目的:柔軟性と使いやすさApr 17, 2025 am 12:14 AM

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Python:汎用性の高いプログラミングの力Python:汎用性の高いプログラミングの力Apr 17, 2025 am 12:09 AM

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

1日2時間でPythonを学ぶ:実用的なガイド1日2時間でPythonを学ぶ:実用的なガイドApr 17, 2025 am 12:05 AM

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。

Python vs. C:開発者の長所と短所Python vs. C:開発者の長所と短所Apr 17, 2025 am 12:04 AM

Pythonは迅速な開発とデータ処理に適していますが、Cは高性能および基礎となる制御に適しています。 1)Pythonは、簡潔な構文を備えた使いやすく、データサイエンスやWeb開発に適しています。 2)Cは高性能で正確な制御を持ち、ゲームやシステムのプログラミングでよく使用されます。

Python:時間のコミットメントと学習ペースPython:時間のコミットメントと学習ペースApr 17, 2025 am 12:03 AM

Pythonを学ぶのに必要な時間は、人によって異なり、主に以前のプログラミングの経験、学習の動機付け、学習リソースと方法、学習リズムの影響を受けます。現実的な学習目標を設定し、実用的なプロジェクトを通じて最善を尽くします。

Python:自動化、スクリプト、およびタスク管理Python:自動化、スクリプト、およびタスク管理Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonと時間:勉強時間を最大限に活用するPythonと時間:勉強時間を最大限に活用するApr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Safe Exam Browser

Safe Exam Browser

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

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境