楼主: fitjean
1303 6

[问答] 如何用R语言训练定制化文本库,指定输出 [推广有奖]

  • 0关注
  • 0粉丝

小学生

85%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.1500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
59 点
帖子
5
精华
0
在线时间
12 小时
注册时间
2021-5-17
最后登录
2023-11-29

楼主
fitjean 发表于 2021-5-17 00:27:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

现在经常做数据集的匹配,遇到名称细微差别的时候,试过很多文本分析的匹配方法,都失败了(因为名称差别小、数据量大),只能最后手动人工匹配,于是想在闲暇之余整理一个词库,用R语言训练,以后每次输入有差别名称时,都能输出想要的标准名称,请详见图片


期望结果:在输入【安庆第五高中】后,会输出标准名称【安庆市第五高中】;总数据有几万行,还需很长的时间整理,但现在实在没想出来R语言怎样实现这样的效果,望各路大神指点迷津,万分感谢!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言 如何用 万分感谢 指点迷津 数据集 文本分析软件 文本分析 R语言

1621176909748.png (12.81 KB)

1621176909748.png

本帖被以下文库推荐

沙发
owenqi 在职认证  学生认证  发表于 2021-5-17 09:23:21
我感觉这个是你想做的?
https://blog.csdn.net/qingchen98/article/details/109654746

藤椅
fitjean 发表于 2021-5-17 12:03:10
owenqi 发表于 2021-5-17 09:23
我感觉这个是你想做的?
谢谢回答!但是所有模拟匹配的方法我都尝试过了,无果,才想着要建立一个词库,整体输入进软件,然后再返回想要的标准名称:)

板凳
llb_321 在职认证  发表于 2021-5-17 14:58:02
人工输入的数据有很强的随意性。
解决这个问题,最理想的还是在数据输入阶段,通过列表选择的方法提供标准化的选项,限制输入误差。

遇到你这种情况,想通过机器学习的方法解决也是可以理解的,但是任何机器学习方法都是有误差的,不可能做到百分之百匹配。而对于你这种几万行的数据,哪怕有三五个误差,麻烦也够大的。

你讲的思路是标准词+异化,这种方法的主要问题是你要想到每个标准词的所有可能变异形式,但是你再怎么聪明,也不可能把所有人的简化、失误考虑进去,另外如果标准词多的话,工作量也是蛮大的。

所以,建议你反过来想,只建立一个标准词的库,然后用jiebaR处理输入数据,提出输入数据的关键词,用关键词与标准库匹配。这种好处是,输入的数据再怎么异化,还是能提出其中的关键词的,除非是NA。只要能提出关键词来,就可以匹配到标准词。所谓以不变应万变。
至于误差的检验,可以用一个笨办法,就是将匹配后的数据因子化后做一个table,看看是否有不在标准词范围内的样本。

报纸
fitjean 发表于 2021-5-17 16:40:25
llb_321 发表于 2021-5-17 14:58
人工输入的数据有很强的随意性。
解决这个问题,最理想的还是在数据输入阶段,通过列表选择的方法提供标准 ...
@llb_321 感谢你详尽的解答,我会探索你提到的方法。因为真实的数据是全国几万家医院,现在每次匹配下来都会有几千家未匹配的数据需要人工匹配,于是想到这个办法不如一劳永逸。

以我在原帖中附上的图片为例,我没有想到用R里面的什么机器学习方法可以输入这些文字变量,从而输出指定标准名称,请问大神有无高见? :)

地板
llb_321 在职认证  发表于 2021-5-17 19:36:03
我回复中的原意是用机器学习的方法无法满足百分之百的匹配要求,所以不用考虑。
至于有什么方法,关联规则分析大概可以实现,思路是建立标准词和变异词之间关联规则,然后用变异词预测标准词。
但是,还是回到老问题,任何模型都是有误差的,而基于这些模型所做的任何预测也是有误差的,这是统计原理的问题。
而且这种方法还是有上面所说的另外一个问题,就是对于每一个标准词,你都要尽可能多地给出变异词,这个步骤仍然需要人工介入。

你可能没理解我提到的另外一个方案,就是不要管这个标准词可能变成什么,只要界定标准词库。
处理实际的样本时,比如有人可能输入“安庆第五中学”,利用中文解词包jiebaR,可以把这个变异词分解成“安庆”、“第五”、“中学”,这个过程就相当于你人工建立变异词库,只不过你建立的是“安庆第五中学”,而jiebaR建立的是变异词的结构分解。然后,你设计一个算法,反正就几万家医院,数据不是很大,不赶时间的话就用循环一条条地匹配,每一次匹配过程可以这样,分别看分解的词匹配到标准库里的哪些词,通常三个词匹配的子集的交集,大概率是可以匹配到最终的标准词的。
另外,你的数据里可能也有医院地址之类的,可以再结合地址的判断,以提高匹配的准确率。
对于正名和别名相差比较大的数据,比如第三军医大学第三附属医院,更多人叫大坪医院,处理起来就麻烦了,所以更需要结合地址、邮编、电话等多个变量进行综合判断。

7
fitjean 发表于 2021-5-18 16:13:14
llb_321 发表于 2021-5-17 19:36
我回复中的原意是用机器学习的方法无法满足百分之百的匹配要求,所以不用考虑。
至于有什么方法,关 ...
你的解释非常清晰,万分感谢!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 08:47