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
classifiedcorrect
,但其他行分类错误。我相信这是因为这个解决方案是基于字符提取的。例如,在第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>