Day 5 - 判断语种

需求描述:聊天机器人数据库里,各种语言混杂在一起,没有标明语种,特别是(中/英/韩/日/其他小语种)。

Raw Data描述:

    - 一个会话(用会话ID区分)里有多个来回,每次来回都记录了:客人问句Q+机器人的答案A(会话ID去重)

    - 既可以按照客人问句Q来检测语种、也可以按照机器人答案A来检测语种(两个字段都可以检测语种);

    - 按道理机器人是按照客人提问的语种来提供答案的(Q&A语种匹配准确率如何?)。


第一步:

好久没用,Rgui 和 R studio版本得先更新成4.0.5了,才能安装各种包。


第二步:安装各种包

install.packages("tidyverse")

install.packages("readxl")

install.packages("textcat")

install.packages("cld3")


第三步:读取各种包

library(tidyverse)

library(readr)

library(textcat)

library(cld3)


第四步:读取Excel数据源

data <- read_xlsx("会话明细.xlsx")


第五步:将数据先按照【会话ID】去个重,再根据【Bot答案】和【客人问句】这两个字段,用detect_language都分别判断一下语种

data %>%

  select(会话ID,答案,客人问句) %>%

  group_by(会话ID)%>%

  filter(row_number()==1) %>%

  mutate(language1=detect_language(答案),

        language2=detect_language(客人问句))->temp


第六步:存成csv格式

write.csv(temp,"语言检测.csv")   


R结果验证:

    - 首先,韩语和泰语在导出的CSV表中显示成乱码,如图。但判断结果大多一致,不太影响语种判断结果;

     - 原始数据:44889条,去重后:26805条;

    - Q和A两个字段,语种判断结果一致的比例:90.5%

    - 不一致的2547条中,  特别是很多机器人回答结果是en的会很容易在客人问句中被判断成pt,如图

    - 输出结果中,用机器人答案判断的语种结果(排除NA外)一共是15种,而客人问句里除了NA一共是72种语言类别(可能那么多小语种都用机器人EN话术兜底了),除了熟悉的那几种之外(EN=英,ZH=中/繁体,KO=韩,JA=日,TH=泰,FR=法语,RU=俄罗斯,IT=意大利),其他小语种还真挺难辨认到底是啥语种的:

结论:

感觉用机器人答案A会更准确一些(因为客人问句可能千奇百怪、机器人回复的答案会更标准一些,更有利于机器判断语种)

-END-

下一期:清洗 + 词频统计

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容