若数据集内有多种语言,如何去识别每个语言呢?我这里借用的是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)
有其他问题欢迎与我交流