我认为这是一个有趣的问题,至少对我而言。
我有一个单词列表,让我们说:
照片,免费,搜索,图像,css3,css,教程,网页设计,教程,谷歌,中国,审查,政治,互联网
我有上下文列表:
如果可能,我需要尝试将单词与适当的上下文/上下文匹配。
也许以某种方式发现词汇关系。
有什么想法吗?
非常感谢帮助!
答案 0 :(得分:3)
答案 1 :(得分:2)
这些词来自哪里?它们来自真实的文本。如果它们是那么它是典型的数据挖掘问题。您需要做的是将您的文档集合到矩阵中,其中行表示单词来自哪个文档,列表示文档中的单词。
例如,如果你有两个这样的文件:
D1:需要找到意义。 D2:需要将苹果与橘子分开
你的矩阵看起来像这样:
Need to find meaning Apples Oranges Separate From
D1: 1 1 1 1 0 0 0 0
D2: 1 1 0 0 1 1 1 1
这称为文档矩阵
收集此统计信息后,您可以使用K-Means等算法将类似文档分组在一起。既然你已经知道你有多少概念,你的任务应该更容易。 K-Means算法非常慢,因此您可以尝试使用SVD
等技术对其进行优化答案 2 :(得分:2)
我刚刚在几天前找到了这个:ConceptNet
这是一个常识本体,所以它可能没有你想要的那么具体,但它有一个python API,你可以下载他们的整个数据库(目前大约1GB解压缩)。请记住他们的licensing restrictions。
如果你阅读由开发它的团队发布的the papers,你可能会得到一些关于如何将你的文字与概念/背景联系起来的想法。
答案 3 :(得分:1)
您的问题的答案显然取决于您尝试将术语映射到的目标分类法。一旦你决定了这一点,你需要弄清楚概念应该是多么精细。正如其他回复中所建议的那样,WordNet将为您提供同义词,即或多或少同义的术语集,但您必须通过其他机制将其映射到“网页设计”或“世界新闻”等概念。这些不是在WordNet中编码的。如果您的目标是非常广泛的语义分类,您可以使用WordNet的更高级别的概念节点,这些节点可以区分,例如, (从等级上看)人类来自动物,来自植物的动物,来自固体的物质,来自抽象事物的混凝土等。
另一种可能对你非常有用的分类是维基百科类别系统。这不仅仅是我刚想出来的一个自发的想法,而且已经a lot of work从维基百科类别中推导出真正的本体。看看Java Wikipedia Library - 想法是找到有关术语的维基百科文章(例如'css3'),提取本文所属的类别,并根据某些标准选择最佳的文章(即'编程','技术'和'网络开发')。根据您尝试执行的操作,最后一步(选择几个给定类别中的最佳类别)可能会也可能不会很困难。
有关您可以使用的其他本体/知识库的列表,请参阅here。