如何准备我自己的数据集到NLTK ConditionalFreqDist函数?

时间:2013-05-07 04:58:49

标签: python nltk

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)

问题是,bro​​wn恰好是使用方便的类别方法构建到nltk中的数据集,但我不知道输入数据是如何构造的。

如果我拥有自己的数据,我想利用COnditionalFreqDist函数,比如50个文档,每个文档都有自己的“流派/类别”,我怎样才能以这样的方式格式化这些数据?功能?它应该是每个类型的csv还是单独的csv,每行包含一个文档?如何格式化输入?小数据集的一个例子很棒。

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

1 个答案:

答案 0 :(得分: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目录,就可以看到所有文件及其组织方式。