从多语言数据集中提取出自己需要的语言并保存为csv

若数据集内有多种语言,如何去识别每个语言呢?我这里借用的是langdetect包的功能,话不多说,看代码。

# -*- coding: utf-8 -*-
# 支持检测55种语言:  af, ar, bg, bn, ca, cs, cy, da, de, el, en, es, et, fa, fi, fr, gu, he, hi, hr, hu, id, it, ja, kn, ko, lt, lv, mk, ml, mr, ne, nl, no, pa, pl, pt, ro, ru, sk, sl, so, sq, sv, sw, ta, te, th, tl, tr, uk, ur, vi, zh-cn, zh-tw

# str = 'Otec matka syn.'

from langdetect import detect
from langdetect import detect_langs

# 当文本过短或模糊时,判断出来的结果会不确定;
# 如果要让结果唯一,添加以下两行:
from langdetect import DetectorFactory
DetectorFactory.seed = 0






if __name__ == '__main__':
    
    # 这段str是对网页做标签清理之后,直接取其文本
    str = '中文语料'
    # 判断语言种类
    print(detect(str))

    # 概率
    print(detect_langs(str))



def getLangs(str) :
    return detect(str)

数据集格式

3,In Ordnung other,"Die Hülle ist schön, jedoch nicht ganz mein Geschmack."
3,試用電池無しでした。 drugstore,すでにこのタイプの補聴器をもってらっしゃる方は、電池も手元にあるのでしょうが、初めて入手した身としては、試用電池がついてなかったことは、ちょっとがっかりさせられました。今までニコンイヤーファッションなどの耳穴式補聴器を買った歳には、たいてい試用電池が1個ついてましたから。補聴器本体の使い勝手などは、これからぼちぼちみていきたいと思います。
5,Super kit kitchen,"J'ai changé toutes les pièces facilement, c'est top merci"
1,toujours pas recu home,toujour s pas reçu ou est mon colis

以此格式写的提取语言的方法,其他格式可以自己微调

'''
    从数据集中提取相应的语言
'''
import csv
import pandas as pd
import os
from extractLanguage import getLangs
# data_path = "NAO/NAO-WS/rnn/data/amazon_test_data"
data_path = "data" # 数据集所在的目录
need_langs = ['zh_cn', 'en', 'de'] # 需要的语言
file_names = ['eval.csv', 'test.csv', 'train.csv'] # 数据集下文件的名字
for need_lang in need_langs:
    store_path = data_path + "/" + need_lang # 保存生成文件的目录
    if not os.path.exists(store_path):
        os.makedirs(store_path)
    for name in file_names:
        df = pd.read_csv(data_path + "/" + name, sep=",", header=None)
        data_lang = []
        for i in df.itertuples():
            row_data = list(i)
            text_data = str(row_data[2]) + str(row_data[3])
            score = row_data[1]
            lang = getLangs(text_data)
            if lang == need_lang:
                temp = [row_data[1], row_data[2], row_data[3]]
                data_lang.append(temp)
            # print(list(i))
        df_lang = pd.DataFrame(data_lang)
        df_lang.to_csv(store_path + "/" + name, index=False, header=None)

有其他问题欢迎与我交流

你可能感兴趣的:(Python学习,python,机器学习,numpy)