首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为西班牙语单词数据库设计模式?

为西班牙语单词数据库设计模式?
EN

Software Engineering用户
提问于 2019-09-01 04:26:59
回答 1查看 159关注 0票数 3

对于我正在进行的帮助人们学习西班牙语的项目,我想创建一个独立的服务来处理有关单词的数据的检索。为此,我从维基词典中捕获并编纂了几千个单词的数据。目前,这是JSON格式的,但我打算将其放入PostgreSQL db中。我正在寻找开发数据库模式的建议。

每个单词都有特定的属性,这是我从维基词典中捕捉到的:

此外,有一些属性是独特的某些部分的词性。具体来说,动词有personmoodtense,形容词和名词有gendernumber

示例:hacía

  • string: hacía
  • part of speech: verb
  • meaning: to do
  • lemma: hacer
  • person: 1st
  • mood: indicative
  • tense: imperfect

我打算使服务的API能够做到以下几点:

  • 给定一个特定的字符串和部分词性,返回与其匹配的所有可能单词。例子:hacía, verb => imperfect indicative first person of hacer and imperfect indicative third person of hacer, along with the properties of each of those two words
  • 给定单词的唯一标识符,返回单词的所有可能形式。例子:unique id of hacía => every possible form of hacer, along with their properties.
  • 给定单词的唯一标识符和属性列表,返回满足这些属性的单词的形式。例子:unique id of hacía, indicative, present, first person => hago

我的问题:

考虑到这些预期用途和底层数据,您建议我如何组织数据库?如果有的话,还有哪些其他考虑因素是相关的?

更具体地说,这个数据库是否应该由一个表组成,并在其中列出以下所有属性?或者,它应该是两个表:一个包含所有单词的表和一个包含所有引理的单独的表,这个表与之相连?还是,我还没有想到第三种选择呢?

EN

回答 1

Software Engineering用户

发布于 2019-09-02 21:55:51

分析你的发言:

  1. 所有的单词都有共同的属性。
  2. 在这个公共部分中,part of speech的作用类似于一种类型:该词可能具有附加属性,这取决于同一表中的part of speech ->附加属性的值(可以使用还是不使用)?或附加
  3. 每个不同的单词(字符串)都有一个唯一的id,而不管它的形式如何。

现在,关于潜在诱因的头脑风暴:

  • (1)至少需要一个具有所有基本属性的Word
  • (2)需要一个额外属性的位置:
    • 可能性(2.a):在Word表中添加其他属性,但在不需要时将其保留为空("单继承“模型)。
    • 可能性(2.b):在一个单独的表中添加额外的属性,每个part of speech有一个表("类表继承“或"混凝土表继承”,以防几个词类构成层次结构)
    • 可能性(2.c):将每个属性放入实体-属性值
    • 可能性(2.d):为每个附加属性创建一个单独的表

  • (2)的变体表明part of speech定义了word的特殊性。因此,如果不同的part of speech是平面结构,或者形成层次结构,则可以进一步分析。
  • part of speech用自己的属性定义专门化这一事实提出了这样一个问题: word的其他核心属性是否也需要额外的属性。但乍一看不是..。
  • (3)建议可以使用唯一的id连接不同的表。
  • (3)意思是同一个词在Words中可能有重复的词条,每个词条都有不同的含义。=>不同的含义会影响其他属性吗?
  • (3)意味着同一个单词在Words中可能有重复的条目,每个条目具有不同的part of speech。=>,这是否意味着单词应该分为词汇部分(即唯一的id和字符串)以及语法和语义部分?

这些都是诱惑力:仅仅是根据最初的发现而产生的想法。下一步是评估这些问题,看看它们是否有效,如何解决,以及利弊。

那你就可以设计。对我来说,直觉上,我会很快地将我的选择限制在类继承表上(带有id和string的词汇形式;带有部分词性和剩余核心属性的语法形式;用于不同part of speech的附加表)和实体字段值方法(更灵活,但更昂贵)。请您反复检查这两种方法如何满足不同的查询需求。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/396809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档