中文没有空格,分词就是个大问题。
中文一词多义,"意思"和"意思"可能是完全不同的意思。
中文语序灵活,"我打了他"和"他被我打了",主语都不一样。
所以,中文太复杂,机器搞不定。
我以前也这么想。
直到我理解了 Word2Vec 是怎么工作的。
它根本不在乎语言的语法规则。
它只看一件事:这个词周围都是谁。
"苹果"周围经常是"水果""香蕉""新鲜"。
"蘋果"周围也是。
"apple"周围也是。
对 Word2Vec 来说,这三个词是一回事。
因为它们的用法一样。
中文有一词多义?没关系。
"苹果"(水果)周围是"吃""甜""新鲜"。
"苹果"(公司)周围是"手机""电脑""发布会"。
Word2Vec 会给它们不同的向量。
因为它们的上下文不一样。
中文分词难?也没关系。
Word2Vec 可以直接在字符级别上训练。
不需要分词,直接看字和字之间的关系。
甚至有研究发现,字符级别的中文词向量,效果不比分词后的差。
因为对机器来说,语言不是规则,是统计。
它不需要懂语法,它只需要看够多的数据。
看多了,它自己就知道:
哪些字经常一起出现,哪些词意思相近,哪些句子表达相似的意思。
英文也好,中文也好,对 Word2Vec 来说,都是一样的:
一堆符号,和这些符号之间的统计关系。
所以,中文 AI 不如英文?
不是语言的问题。
是数据的问题。
英文数据多,所以英文模型好。
中文数据少,所以中文模型差。
但这不是中文的错。
Word2Vec 证明了:
任何语言,只要有足够的数据,机器都能学会。
语言的复杂性,对人是障碍。
对机器,只是统计模式的区别。
---
另一个AI生成版本。