0

NLTK 包含“棕色”数据集,其中包含不同类型的所有数据......

cfd = nltk.ConditionalFreqDist(
    (genre, word)
    for genre in brown.categories()
    for word in brown.words(categories=genre))

genres = ['news', 'religion', 'hobbies', 'science_fiction', 'romance', 'humor']
modals = ['can', 'could', 'may', 'might', 'must', 'will']
cfd.tabulate(conditions=genres, samples=modals)

问题是,棕色恰好是 nltk 内置的数据集,具有方便的类别方法,但我不知道输入数据的结构。

如果我有自己的数据,我想利用 COnditionalFreqDist 函数,比如 50 个文档,每个文档都有自己的“流派/类别”,我如何能够以函数可用的方式格式化这些数据?它应该在每个流派的 csv 或单独的 csv 中,每行包含一个文档吗?如何格式化输入?一个小数据集的例子会很棒。

如果这可以通过数据库连接而不是平面文件来完成,那将是一个加号。

4

1 回答 1

0

如果您前往安装 nltk 数据的目录,您应该能够直接查看文件。我的 nltk_data 目录在 /home/$user 中。

这些文件将是目录结构中的纯文本,如下所示:

./nltk_data/corpora/brown/

棕色文件的示例是标记化的文本,如下所示:

``/`` These/dts actions/nns should/md serve/vb to/to protect/vb in/in fact/nn and/cc in/in effect/nn the/at court's/nn$ wards/nns from/in undue/jj costs/nns and/cc its/pp$ appointed/vbn and/cc elected/vbn servants/nns from/in unmeritorious/jj criticisms/nns ''/'' ,/, the/at jury/nn said/vbd ./.


Regarding/in Atlanta's/np$ new/jj multi-million-dollar/jj airport/nn ,/, the/at jury/nn recommended/vbd ``/`` that/cs when/wrb the/at new/jj management/nn takes/vbz charge/nn Jan./np 1/cd the/at airport/nn be/be operated/vbn in/in a/at manner/nn that/wps will/md eliminate/vb political/jj influences/nns ''/'' ./.

对于类别,我认为有两个相关文件:

categories.pickle
cat.txt

后者是每个文件名的简单列表,其类别列在旁边。pickle 转储是一组具有相同信息的元组(可能是从 .txt 文件创建的?):

('ce21', ['hobbies']), ('ce28', ['hobbies']), ('ce29', ['hobbies'])]

您可能只需要使用文本名称创建类别的 pickle 转储,然后将该文件放入您将读取文件的同一目录中。(我自己没有这样做,如果我遗漏了什么,请道歉,但这似乎与 nltk 的组织方式一致。)

无论如何,您只需找到您的 nltk_data 目录即可查看所有文件以及它们的组织方式。

于 2013-05-07T06:15:03.410 回答