文本语料库数据库的数据结构

2024-10-01 15:34:14 发布

您现在位置:Python中文网/ 问答频道 /正文

文本语料库通常用xml表示:

<corpus name="foobar" date="08.09.13" authors="mememe">
  <document filename="br-392">
    <paragraph pnumber="1">
      <sentence snumber="1">
        <word wnumber="1" partofspeech="VB" sensetag="012345678-v" nameentity="None">Hello</word>
        <word wnumber="2" partofspeech="NN" sensetag="876543210-n" nameentity="World">Foo bar</word>
      </sentence>
    </paragraph>
  </document>
</corpus>

当我试图将语料库放入数据库时,我让每一行代表一个单词,列如下:

| uid | corpusname | docfilename | pnumber | snumber | wnumber | token | pos | sensetag | ne

| 198317 | foobar | br-392 | 1 | 1 | 1 | Hello | VB | 012345678-v | None |

| 192184 | foobar | br-392 | 1 | 1 | 1 | foobar | NN | 87654321-n | World |

我将数据放入sqlite3数据库:

^{pr2}$

数据库的目的是让我可以像这样运行查询

SELECT * from ENG if paragraph=1;
SELECT * from ENG if sentence=1;
SELECT * from ENG if sentence=1 and pos="NN" or sensetag="87654321-n"
SELECT * from ENG if pos="NN" and sensetag="87654321-n"
SELECT * from ENG if docfilename="br-392"
SELECT * from ENG if corpusname="foobar"

当我像上面那样构建数据库时,我的数据库规模会爆炸式增长,因为每个语料库中的令牌数量可能会达到数百万或数十亿。在

除了通过让每一行对应一个单词,并让列具有其属性和父属性来构建一个语料库,否则,如何构建数据库,以便执行查询并获得相同的输出?

为了索引大型语料库

  1. 其他程序是否应该使用其他sqlite3数据库?

  2. 我是否应该对表使用上面定义的相同模式?


Tags: fromposbr数据库ifnnselecteng
2条回答

And should i still use the same schema for the table as I have defined above?

从关系数据库设计的角度来看,由于1NF,我将为xml文件的每个元素使用一个表。
我们将节省空间,我们将帮助数据库管理系统的性能。
使用该模型,所需的查询将适用于
模型草案将是:

model

should I be using some other database programs other than sqlite3?

这可能会根据您的应用程序规范来回答,比如一个月、一年之后您将拥有多少数据记录。。。,将连接多少用户,是OLTP或OLAP还是混合,项目预算和。。。
顺便说一句,看看免费的R-DBMS,比如PostgreSQL,MySQL和商业数据库,比如Oracle。
对于NoSql解决方案,查看post可能会有所帮助

我想显而易见的答案是“正常化”。。。每行有大量的重复信息,这将大大增加数据库的大小。在

你应该从每一行计算出什么是重复的,然后创建一个表来包含这些数据,然后你将减少,例如,一个重复的字符串包含语料库长度,比如说,20个字符的长度,指向“语料库名称”表中某一行的指针,为了参数的原因,可能只取4个字符作为该行的ID值进入。在

你也没说你在用什么平台。如果它是一个移动设备,那么它真的需要尽可能使你的数据正常化。它使代码稍微复杂一点,但这始终是这样的东西的空间/时间权衡。我猜这是某种参考应用程序,在这种情况下,纯盲目的速度可能是次要的只是让它工作。在

normalisation的必需wikipedia链接

这个YouTube video

谷歌是你的朋友,希望对你有帮助。:)肖恩

相关问题 更多 >

    热门问题