您可以
在这里和
这里阅读有关俄罗斯历史的开放式语义有了重大更新。 我们已经收集了足够的数据,可以在收集的标记之上应用机器学习,并建立语义语言模型。 它产生了什么,见下切。

我们做什么
采取两组词:
- 跑步,射击,密谋,远足,散步;
- 跑步者,摄影师,工程师,游客,运动员。
对于一个人来说,确定第一组包含命名
动作或事件的名词并不困难; 在第二个召唤
人 。 我们的目标是教机器解决这些问题。
为此,您必须:
- 找出语言中存在哪些自然类。
- 在第1款中的所属主题上标记足够多的单词。
- 创建一个算法,该算法从第2项的标记中学习,并以不熟悉的单词重现分类。
是否可以借助分发语义来解决此问题?word2vec是一种出色的工具,但它仍然更喜欢单词的主题相似性,而不是其语义类的相似性。 为了证明这一事实,请使用示例中的文字来运行算法:
w1 | w2 | cosine_sim | | | | | | 1.0000 | | | 0.6618 | | | 0.5410 | | | 0.3389 | | | 0.1531 | | | 0.1342 | | | 0.1067 | | | 0.0681 | | | 0.0458 | | | 0.0373 | | | | | | 1.0000 | | | 0.5782 | | | 0.2525 | | | 0.2116 | | | 0.1644 | | | 0.1579 | | | 0.1342 | | | 0.1275 | | | 0.1100 | | | 0.0975 | | | | | | 1.0000 | | | 0.3575 | | | 0.2116 | | | 0.1587 | | | 0.1207 | | | 0.1067 | | | 0.0889 | | | 0.0794 | | | 0.0705 | | | 0.0430 | | | | | | 1.0000 | | | 0.1896 | | | 0.1753 | | | 0.1644 | | | 0.1548 | | | 0.1531 | | | 0.0889 | | | 0.0794 | | | 0.0568 | | | -0.0013 | | | | | | 1.0000 | | | 0.5410 | | | 0.3442 | | | 0.2469 | | | 0.1753 | | | 0.1650 | | | 0.1207 | | | 0.1100 | | | 0.0673 | | | 0.0642 | | | | | | 1.0000 | | | 0.6618 | | | 0.4909 | | | 0.3442 | | | 0.1548 | | | 0.1427 | | | 0.1422 | | | 0.1275 | | | 0.1209 | | | 0.0705 | | | | | | 1.0000 | | | 0.5782 | | | 0.3687 | | | 0.2334 | | | 0.1911 | | | 0.1587 | | | 0.1209 | | | 0.0642 | | | 0.0373 | | | -0.0013 | | | | | | 1.0000 | | | 0.3575 | | | 0.2334 | | | 0.1579 | | | 0.1503 | | | 0.1447 | | | 0.1422 | | | 0.0673 | | | 0.0568 | | | 0.0458 | | | | | | 1.0000 | | | 0.3687 | | | 0.2525 | | | 0.1896 | | | 0.1650 | | | 0.1503 | | | 0.1495 | | | 0.1427 | | | 0.0681 | | | 0.0430 | | | | | | 1.0000 | | | 0.4909 | | | 0.3389 | | | 0.2469 | | | 0.1911 | | | 0.1495 | | | 0.1447 | | | 0.0975 | | | 0.0889 | | | 0.0889 |
开放语义如何解决这个问题在
语义词典中的搜索给出以下结果:
| | | | | ABSTRACT:ACTION | | ABSTRACT:ACTION | | ABSTRACT:ACTION | | ABSTRACT:ACTION | | ABSTRACT:ACTION | | HUMAN | | HUMAN | | HUMAN | | HUMAN | | HUMAN |
已完成的操作以及在何处下载
在GC的
存储库中发布并可供下载的工作结果是对这些类的类层次结构和名词标记(手动和自动)的描述。
要熟悉数据集,可以使用交互式导航器(存储库中的链接)。 该集合还有一个简化版本,其中我们删除了整个层次结构,并为每个单词分配了一个大的语义标记:“人”,“动物”,“地方”,“事物”,“动作”等。
链接到Github: 俄语(数据集)的开放语义 。
关于词类
在分类问题中,类本身通常由要解决的问题决定,数据工程师的工作归结为找到一组成功的属性,在这些属性的基础上您可以构建一个工作模型。
在我们的问题中,严格来说,词类是事先未知的。 在这里,由国内外语言学家完成的大量语义研究,对现有语义词典和WordNet的熟悉都可以解脱。
这是一个很好的帮助,但最终的决定仍在我们自己的研究中形成。 就是这个 在计算机时代之前(至少在现代的计算机理解中)开始创造了许多语义资源,并且类别的选择在很大程度上取决于其创建者的语言直觉。 在上个世纪末,WordNet被积极地用于自动文本分析任务,并且针对特定的实际应用优化了许多新创建的资源。
结果是这些语言资源同时包含有关语言单元的语言和语言外的百科全书信息。 逻辑上假设无法建立仅依靠文本的统计分析来检查语言外信息的模型,因为数据源根本不包含必要的信息。
基于此假设,我们只寻找可以基于纯语言模型检测并自动验证的自然类。 同时,系统体系结构允许添加有关语言单元的任意数量的附加信息层,这在实际应用中可能是有用的。
我们将通过分析“冰箱”一词,以一个特定的示例来说明上述内容。 从语言模型中,我们可以发现“冰箱”是一种物质对象,是一种设计,是一种“盒子或袋子”类型的容器,即 不打算在没有附加容器的情况下存储液体或固体。 此外,根据该模型还不清楚“冰箱”是商品,还是耐用产品,也不清楚这是人工制品,即不是。 人为对象。 这是非语言信息,必须单独提供。
为什么需要所有这些
尽管如此,在学习和认识现实的过程中,一个人会在他从童年时期学到的自然框架上串起有关周围物体和现象的更多信息。 但是,某些概念是通用的,与主题领域无关,并且可以成功重用。
说“卖方”是一个
人 +一个
功能角色 。 在某些情况下,卖方可能是一群人或一个组织,但主观性始终得以保留:否则,将无法实现目标行为。 词语“交换”或“训练”是指动作,即 他们有参与者,持续时间和结果。 这些操作的确切内容可能会根据情况和主题领域而有很大差异,但是某些方面将是不变的。 这是可变的语言外知识分层的语言框架。
我们的目标是找到和探索最大的可用语言内信息,并在此基础上构建语言的解释模型。 这将改善现有的自动文字处理算法,包括 诸如解决词汇歧义,解决照应,复杂的形态标记案例等复杂问题。 在此过程中,我们必定会在某种程度上反对吸引语言外知识的需求,但至少当语言的内部知识不足时,我们至少会知道边界在哪里。
分类和训练,属性集
目前,我们仅使用名词,因此在下面,当我们说“单词”时,我们指的是仅与词性相关的符号。 由于我们决定只使用语言内信息,因此我们将处理带有形态标记的文本。
作为标志,我们将出现该词的所有可能的微上下文。 对于名词,它们将是:
- APP + X (美丽的X:眼睛)
- GLAG + X (vdite X:线程)
- VL + PRED + X (输入X:门)
- X + SUSCH_ROD (X:表格的边缘)
- SUSHCH + X_ROD (手柄X:军刀)
- X_ SUBJECT + GL (X:情节正在发展)
微上下文的类型更多,但是以上是最常见的,并且在学习时已经给出了很好的结果。
所有微上下文都被简化为基本形式,我们从中构成了一组功能。 接下来,对于每个单词,我们组成一个向量,该向量的第
i个坐标将与第
i个微上下文中给定单词的出现相关。
单词“背包”的微上下文表 | | | | | | | | | VBP_ | 3043 | 1.0000 | | ADJ | 2426 | 0.9717 | | NX_NG | 1438 | 0.9065 | | VBP_ | 1415 | 0.9045 | | VBP__ | 1300 | 0.8940 | | NX_NG | 1292 | 0.8932 | | NX_NG | 1259 | 0.8900 | | ADJ | 1230 | 0.8871 | | ADJ | 1116 | 0.8749 | | ADJ | 903 | 0.8485 | | ADJ | 849 | 0.8408 | | NX_NG | 814 | 0.8356 | | ADJ | 795 | 0.8326 | | ADJ | 794 | 0.8325 | | VBP_ | 728 | 0.8217 | | ADJ | 587 | 0.7948 | | ADJ | 587 | 0.7948 | | VBP__ | 567 | 0.7905 | | VBP_ | 549 | 0.7865 | | VBP__ | 538 | 0.7840 | | VBP_ | 495 | 0.7736 | | VBP_ | 484 | 0.7708 | | NX_NG | 476 | 0.7687 | | ADJ | 463 | 0.7652 | | NX_NG | 459 | 0.7642 |
目标值,语义切片层次结构
该语言具有自然的机制,可以重用单词,从而导致多义现象的出现。 此外,有时不仅重复使用单个单词,而且还会对整个概念进行隐喻转换。 在从物质概念到抽象概念的过渡中,这一点尤其明显。
这一事实表明需要进行分层分类,在分层分类中,语义部分以树结构排列,并且在每个内部节点中进行分区。 这使您可以更有效地处理微上下文中的歧义。
隐喻概念转移的例子除了解决计算机语言学迫切的实际问题外,我们的工作还旨在研究单词和各种语言现象。 从真实平面到抽象概念的隐喻转移是认知语言学家众所周知的现象。 因此,例如,物质世界中最聪明的概念之一就是“容器”类(在俄语文献中,它通常被称为“容器”)。
另一个普遍存在的本体论隐喻是容器或容器的隐喻,这意味着在我们的经验连续体中划定界限,并通过空间类别来理解它。 作者认为,一个人感知周围世界的方式取决于他处理离散物质的经验,尤其是他对自己,身体的感知。 人是通过皮肤与世界其他地区分隔开的生物。 他是一个容器,因此他通常将其他实体视为具有内部和外部表面的容器。
Skrebtsova T. G.认知语言学:古典理论,新
方法
我们构建的模型在单个属性空间中运行,使我们可以从真实的示例中学习,并在抽象领域中进行预测。 这使您可以进行上述传输。 因此,例如,以下单词是抽象容器,这与直观的想法是一致的:

另一个有趣的例子是将“液体”的概念转移到无形资产领域:

算法选择
作为一种算法,我们使用了逻辑回归。 这是由于以下几个原因:
- 初始标记以一种或另一种方式包含一定量的错误和噪声。
- 符号可能不平衡,也可能包含错误-该单词的多义和隐喻(象征性)使用。
- 初步分析表明,应使用相当简单的算法来固定适当选择的接口。
- 算法的良好可解释性很重要。
该算法显示出相当好的准确性:
标记算法的日志 == ENTITY == slice | label | count | correctCount | accuracy | | | | | | ENTITY | PHYSICAL | 12249 | 11777 | 0.9615 | ENTITY | ABSTRACT | 9854 | 9298 | 0.9436 | | | | | | | | | | 0.9535 | == PHYSICAL:ROLE == slice | label | count | correctCount | accuracy | | | | | | PHYSICAL:ROLE | ORGANIC | 7001 | 6525 | 0.9320 | PHYSICAL:ROLE | INORGANIC | 3805 | 3496 | 0.9188 | | | | | | | | | | 0.9274 | == PHYSICAL:ORGANIC:ROLE == slice | label | count | correctCount | accuracy | | | | | | PHYSICAL:ORGANIC:ROLE | HUMAN | 4879 | 4759 | 0.9754 | PHYSICAL:ORGANIC:ROLE | ANIMAL | 675 | 629 | 0.9319 | PHYSICAL:ORGANIC:ROLE | FOOD | 488 | 411 | 0.8422 | PHYSICAL:ORGANIC:ROLE | ANATOMY | 190 | 154 | 0.8105 | PHYSICAL:ORGANIC:ROLE | PLANT | 285 | 221 | 0.7754 | | | | | | | | | | 0.9474 | == PHYSICAL:INORGANIC:ROLE == slice | label | count | correctCount | accuracy | | | | | | PHYSICAL:INORGANIC:ROLE | CONSTRUCTION | 1045 | 933 | 0.8928 | PHYSICAL:INORGANIC:ROLE | THING | 2385 | 2123 | 0.8901 | PHYSICAL:INORGANIC:ROLE | SUBSTANCE | 399 | 336 | 0.8421 | | | | | | | | | | 0.8859 | == PHYSICAL:CONSTRUCTION:ROLE == slice | label | count | correctCount | accuracy | | | | | | PHYSICAL:CONSTRUCTION:ROLE | TRANSPORT | 188 | 178 | 0.9468 | PHYSICAL:CONSTRUCTION:ROLE | APARTMENT | 270 | 241 | 0.8926 | PHYSICAL:CONSTRUCTION:ROLE | TERRAIN | 285 | 253 | 0.8877 | | | | | | | | | | 0.9044 | == PHYSICAL:THING:ROLE == slice | label | count | correctCount | accuracy | | | | | | PHYSICAL:THING:ROLE | WEARABLE | 386 | 357 | 0.9249 | PHYSICAL:THING:ROLE | TOOLS | 792 | 701 | 0.8851 | PHYSICAL:THING:ROLE | DISHES | 199 | 174 | 0.8744 | PHYSICAL:THING:ROLE | MUSIC_INSTRUMENTS | 63 | 51 | 0.8095 | PHYSICAL:THING:ROLE | WEAPONS | 107 | 69 | 0.6449 | | | | | | | | | | 0.8739 | == PHYSICAL:TOOLS:ROLE == slice | label | count | correctCount | accuracy | | | | | | PHYSICAL:TOOLS:ROLE | PHY_INTERACTION | 213 | 190 | 0.8920 | PHYSICAL:TOOLS:ROLE | INFORMATION | 101 | 71 | 0.7030 | PHYSICAL:TOOLS:ROLE | EM_ENERGY | 72 | 49 | 0.6806 | | | | | | | | | | 0.8031 | == ATTR:INORGANIC:WEARABLE == slice | label | count | correctCount | accuracy | | | | | | ATTR:INORGANIC:WEARABLE | NON_WEARABLE | 538 | 526 | 0.9777 | ATTR:INORGANIC:WEARABLE | WEARABLE | 282 | 269 | 0.9539 | | | | | | | | | | 0.9695 | == ATTR:PHYSICAL:CONTAINER == slice | label | count | correctCount | accuracy | | | | | | ATTR:PHYSICAL:CONTAINER | CONTAINER | 636 | 627 | 0.9858 | ATTR:PHYSICAL:CONTAINER | NOT_A_CONTAINER | 1225 | 1116 | 0.9110 | | | | | | | | | | 0.9366 | == ATTR:PHYSICAL:CONTAINER:TYPE == slice | label | count | correctCount | accuracy | | | | | | ATTR:PHYSICAL:CONTAINER:TYPE | CONFINED_SPACE | 291 | 287 | 0.9863 | ATTR:PHYSICAL:CONTAINER:TYPE | CONTAINER | 140 | 131 | 0.9357 | ATTR:PHYSICAL:CONTAINER:TYPE | OPEN_AIR | 72 | 64 | 0.8889 | ATTR:PHYSICAL:CONTAINER:TYPE | BAG_OR_BOX | 43 | 31 | 0.7209 | ATTR:PHYSICAL:CONTAINER:TYPE | CAVITY | 30 | 20 | 0.6667 | | | | | | | | | | 0.9253 | == ATTR:PHYSICAL:PHY_STATE == slice | label | count | correctCount | accuracy | | | | | | ATTR:PHYSICAL:PHY_STATE | SOLID | 308 | 274 | 0.8896 | ATTR:PHYSICAL:PHY_STATE | FLUID | 250 | 213 | 0.8520 | ATTR:PHYSICAL:PHY_STATE | FABRIC | 72 | 51 | 0.7083 | ATTR:PHYSICAL:PHY_STATE | PLASTIC | 78 | 42 | 0.5385 | ATTR:PHYSICAL:PHY_STATE | SAND | 70 | 31 | 0.4429 | | | | | | | | | | 0.7853 | == ATTR:PHYSICAL:PLACE == slice | label | count | correctCount | accuracy | | | | | | ATTR:PHYSICAL:PLACE | NOT_A_PLACE | 855 | 821 | 0.9602 | ATTR:PHYSICAL:PLACE | PLACE | 954 | 914 | 0.9581 | | | | | | | | | | 0.9591 | == ABSTRACT:ROLE == slice | label | count | correctCount | accuracy | | | | | | ABSTRACT:ROLE | ACTION | 1497 | 1330 | 0.8884 | ABSTRACT:ROLE | HUMAN | 473 | 327 | 0.6913 | ABSTRACT:ROLE | PHYSICS | 257 | 171 | 0.6654 | ABSTRACT:ROLE | INFORMATION | 222 | 146 | 0.6577 | ABSTRACT:ROLE | ABSTRACT | 70 | 15 | 0.2143 | | | | | | | | | | 0.7896 |
错误分析
自动分类引起的错误是由三个主要因素引起的:
- 同形异义和多义性:具有相同类型的单词可以具有不同的含义(折磨a和m u ka, 作为过程停止,而作为位置停止)。 这还可以包括单词和转喻的隐喻使用(例如,一扇门将被分类为封闭空间-这是该语言的预期功能)。
- 在使用该词时不平衡。 原始包装中可能没有某些有机用途,导致分类错误。
- 无效的类边界。 您可以画出无法从上下文中计算出来的边界,并且需要涉及语言以外的知识。 在这里,算法将无能为力。
在此阶段,我们仅关注第三种类型的错误,并调整类之间的选定边界。 在给定的系统配置中,前两种错误无法消除,但是带有足够数量的标记数据,它们并不代表很大的问题-这可以从上部凸起标记的准确性中看出。
接下来是什么
目前,数据集涵盖了俄语中存在的大多数名词,并在足够多的上下文中以语料库表示。 主要重点放在物质对象上,这是科学作品中最容易理解和详细阐述的对象。 考虑到从算法接收到的数据,仍然需要优化现有标记,并使用较低层上的类进行工作,其中较低的类由于类之间的边界模糊而导致预测准确性下降。
但这是一种常规工作,始终存在。 质的新研究将涉及在特定上下文或句子中对特定单词进行分类的可能性,这将考虑同音和多义现象,包括隐喻(比喻意义)。
此外,我们目前正在开展多个相关项目:
俄语声调词典
音调词典是OJ的单词和表达,以情绪评估冲动的严重程度的音调和强度为标志。 简而言之,一个特定的单词是“坏”还是“好”。
目前,已标记67.392个字符(其中55.532个单词和11.860个表达式)。
反馈与分配
我们欢迎评论中的任何反馈-从对工作及其对有趣研究和相关文章的链接的批评。
如果您的熟人或同事可能对已发布的数据集感兴趣,请向他们发送指向文章或资源库的链接,以帮助传播开放数据。
下载链接和许可证
数据集:俄语的开放语义该数据集已获得
CC BY-NC-SA 4.0的许可。