关于简体繁体搜索的问题

2014-12-05 17:16:48 +08:00
 Jack
如何处理同一个词用简体和繁体打出来搜索不同的问题,比如“邪恶”和“邪惡”完全是两个词,只能先全部转成简体和繁体两个版本然后一起搜么?

我扫了眼转换的方法,基本都是列出那1万多个不同的字然后去替换,没有更好的办法吗~ 求解
4132 次点击
所在节点    程序员
9 条回复
yuankui
2014-12-05 17:23:33 +08:00
这个跟英文的大小写是一个道理吧?

你觉得英文的大小写是怎么处理的??
233
2014-12-05 17:28:34 +08:00
似乎是的,还有就是类似字但编码不同也要做映射,比如"冈"和"岡"
bingu
2014-12-05 17:30:05 +08:00
你的意思是搜索“软件”,然后就转换为“軟體”,这样。。。
Jack
2014-12-05 17:30:35 +08:00
@yuankui 英文一个自带函数就处理了,如果你知道php有啥处理繁简中文的函数的话,请一定告诉我。
staticor
2014-12-05 18:09:21 +08:00
如果只是搜索的话, 这2类字就可以理解为 "how fransic 你有 老了啊?" 中英两种文字放在引擎中去查看.


字对字直接简繁对应的话会出现如 @bingu 说的那样 (恰好 昨天给孩子用一个台湾的程式讲故事,里面说的 "预备" 就是用 "就定位" 来表达的;

比如 软件在简体字的网页中是关键高频词, 但是

軟件 可能在繁體字的網頁中就真的不怎麼出現了 (就像你在一在簡體網頁中發現了 '正太' 一样 假设 这个词还没有漂过内地)

所以要建立繁体 <->简体的对应关系 (不如只考虑one-one mapping)

但其实只是把字面值换成对应的value的话就会出现 刚刚的问题. 所以只建立字-字的映射可能是不够的,
应该要建立一个 词-词 的映射,更准确的说 可以只建立**搜索中会用到的key words的映射**




附录:


'''
繁体 b'\xe7\xb9\x81\xe4\xbd\x93'
繁體 b'\xe7\xb9\x81\xe9\xab\x94'

软件 b'\xe8\xbd\xaf\xe4\xbb\xb6'
軟體 b'\xe8\xbb\x9f\xe9\xab\x94'
'''
Gn
2014-12-05 19:45:33 +08:00
要注意简体到繁体是一对多的,汉字简化的时候把许多不同的字合成一个字(多音字?)。
并不像是英文大小写的转换那么简单!

例:
幹活 干係
只是 一隻
一斗米 戰鬥
寒舍 捨棄

https://www.byvoid.com/blog/recommend-rime

http://zh.wikipedia.org/wiki/%E7%B0%A1%E7%B9%81%E8%BD%89%E6%8F%9B%E4%B8%80%E5%B0%8D%E5%A4%9A%E5%88%97%E8%A1%A8
pierrec
2014-12-05 20:02:52 +08:00
我觉得 参考百度就好
bugeye
2014-12-06 10:06:25 +08:00
@Gn 繁体到简体也一样会一对多,比如繁体的沈,到简体就可以是 沈 或 沉。沉是沈没的沈的俗字。简体不知道为什么非要区分这个。中文里同字不同音不同义的字太多了,为什么非要区别这两个,也属于未解之迷。

另外,你举的“舍”就是繁体,正体。捨是後来的俗字。儒家经典用的都是舍,没有捨这么个俗字。
说文解字注里面:“捨,釋也。釋者,解也。按經傳多叚舍爲之。从手舍聲。書冶切。古音在五部。”

再如,后和後,在古代很多时候都是通用的,比如史记只用“后””,也说不上哪个是所谓的繁体和简体。

“于”和“於”:诗经一会儿写作“于”,一会儿写作“於”,虽然“于”是俗字,但这个字代替“於”的历史实在太久了,也不好就说“于”就是错的。如果“于”是错的,诗经一半都是错字了。

对于楼主这个问题,肯定是没有好方法的。事实上,台湾选字和香港用字也是不同的。比如裏和裡。这个字简体简得毫无道理,把路程的“里”来代表概念上的“裏”。

你可以考虑把所有的字都“简化”成“简体字”,然后再搜索一次,但也会遇到“沈”这样的例子需要先判断这倒底应该转成哪个字。
Gn
2014-12-06 11:02:01 +08:00
@bugeye 谢谢指教,受益匪浅。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/151781

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX