Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于文本中使用的非英语语言删除文本_R_String_Text_Dplyr_Nlp - Fatal编程技术网

R 基于文本中使用的非英语语言删除文本

R 基于文本中使用的非英语语言删除文本,r,string,text,dplyr,nlp,R,String,Text,Dplyr,Nlp,这是我的示例数据集: text=c("I went to Helsinki","I went to Hélsinki","I went allé Helsinki", "je vais a Helsinli","I met Mr Smith","I met Monsiéur Smith","J'ai rencontré Monsieur Smith&q

这是我的示例数据集:

text=c("I went to Helsinki","I went to  Hélsinki","I went allé Helsinki",
       "je vais a Helsinli","I met Mr Smith","I met Monsiéur Smith","J'ai rencontré Monsieur Smith"
       )

rank=c(1,2,3,4,5,6,7)

df <- data.frame(text,rank)
df %>% top_n(10)

                           text rank
1            I went to Helsinki    1
2           I went to  Hélsinki    2
3          I went allé Helsinki    3
4            je vais a Helsinli    4
5                I met Mr Smith    5
6          I met Monsiéur Smith    6
7 J'ai rencontré Monsieur Smith    7

使用此解决方案,我有行
1,5和7
classified
correct
,但其他行分类错误。我相信这是因为这个解决方案是基于字符提取的。例如,在
第2行
中,在
Hélsinki
中有字符
é
,这就是为什么该文本被归类为
NA
非英语
,而该文本主要是用
英语
语言编写的。或者,在
第4行
中,文本的主要语言是
法语
,但由于文本中的标点符号和书写问题没有法语字符,因此将其归类为英语文本

我想知道是否有一种解决方案可以根据文本的主要语言对文本进行分类,这比只在文本中查找一个字符更复杂。因此,在这种情况下,我的理想输出应该是:

                           text        text_selected
1            I went to Helsinki    I went to Helsinki
2           I went to  Hélsinki    I went to  Hélsinki
3          I went allé Helsinki    I went allé Helsinki
4            je vais a Helsinli            <NA>
5                I met Mr Smith    I met Mr Smith
6          I met Monsiéur Smith    I met Monsiéur Smith 
7 J'ai rencontré Monsieur Smith            <NA>
text\u已选定
我去了赫尔辛基我去了赫尔辛基
我去了赫尔辛基我去了赫尔辛基
我去了所有的赫尔辛基我去了所有的赫尔辛基
4.我是赫尔辛利人
我遇到了史密斯先生我遇到了史密斯先生
我遇到了史密斯先生我遇到了史密斯先生
7 J'ai rencontréSmith先生

@Mike H.有什么想法吗?请使用
cld3
软件包中的函数,
detect\u language()
,该函数应该会有所帮助:@Phil,我会尽力通知你的。谢谢@菲尔,这不是100%准确,但与我的方法相比,产生的
假阴性
。嗯,文本是我的数据集的一列和其他列。我必须创建一个整洁的文本数据,如
text\u df这是在问一个不同的问题,但是如果我理解正确,您需要为每行设置一个唯一的id号(您可以使用dplyr中的
row\u number()
,然后使用
left\u join()
将数据帧合并回来。
                           text        text_selected
1            I went to Helsinki    I went to Helsinki
2           I went to  Hélsinki    I went to  Hélsinki
3          I went allé Helsinki    I went allé Helsinki
4            je vais a Helsinli            <NA>
5                I met Mr Smith    I met Mr Smith
6          I met Monsiéur Smith    I met Monsiéur Smith 
7 J'ai rencontré Monsieur Smith            <NA>