【问题标题】:Can you help me out in dividing a list of texts?你能帮我划分一个文本列表吗?
【发布时间】:2020-05-02 07:00:17
【问题描述】:

我一直在研究神经网络教程,目前正在尝试对新闻文章进行分类。问题是,我需要将我的文本分成训练和测试数据集,但我找不到这样做的方法。

例如,在我的示例网站中,文本命名如下:cv100.txt, cv203.txt, cv900.txt 等等。所以作者使用下面的代码将这些测试拆分成9:1。

if filename.startswith('cv9'):if not filename.startswith('cv9'):

但是,对于我目前正在处理的其他任务,文本的文件名如下所列:0000Data, 0001Data, ..., 0299Data

我需要做的是将0000Data0200Data 的文本作为训练数据集,将0200Data0299Data 作为测试数据集。

但我意识到这不适用于filename.startswith('') 方法。 总之,像cv000 ~ cv999这样的文件名可以被filename.startswith('cv9')分割成9:1,但是我想分割文件名比如 0000Data~0299Data 成 1:2。但是,我想不出一个聪明的方法来划分它们。

一定有什么好办法可以解决这个问题,但我想不出来,虽然我搜索了很多,想了很多。

【问题讨论】:

    标签: neural-network listdir


    【解决方案1】:

    如果您的书名为“Deep Learning for Natural Language ProcessingDevelop Deep Learning Models for Natural Language in Python”和cover the same,那么您只是缺少正确的数据集。

    原始数据集可以通过链接http://www.cs.cornell.edu/people/pabo/movie-review-data/review_polarity.tar.gz下载,它包含的内容与您描述的完全相同。

    review_polarity 树 . ├── poldata.README.2.0.md └── txt_sentoken ├── 否定 │   ├── cv000_29416.txt │   ├── cv001_19502.txt │   ├── cv002_17424.txt [...] │   ├── cv997_5152.txt │   ├── cv998_15691.txt │   └── cv999_14636.txt └── 位置 ├── cv000_29590.txt ├── cv001_18431.txt ├── cv002_15918.txt [...] ├── cv003_11664.txt ├── cv004_11636.txt ├── cv005_29443.txt

    【讨论】:

    • 非常感谢您提供的数据。但我想我没有给出足够的解释。我想问的是,我正在处理的任务中的文本文件似乎不像示例那样划分。 'cv000'~'cv999'这样的文件名可以通过'filename.startswith('cv9')分割成9:1,但是我想把0000Data~0299Data这样的文件名分割成1:2。但是,我想不出一个聪明的方法来划分它们。
    • 没有足够的信息来理解你想要什么。书是一样的吗?如果是,那么您的任务是什么页码或章节标题?接下来你从哪里得到任务的文本文件?你能一步一步描述吗?
    • 嘿,是关于你的任务吗? stackoverflow.com/questions/56535955/…
    • 我的意思是,我正在处理与示例类似的任务。该示例是链接正在谈论的内容。对我来说,我的任务如下。首先,我有一个新闻文章数据集,分为 5 个部分。我已经对它们进行了清理、编码和填充。但是,我被困在需要将整个数据集划分为训练数据和测试数据的地方。由于数据集由文本文件组成,第一部分命名为0000Data0001Data、...、0299Data,第二部分命名为1000Data1001Data...1299Data,第二部分命名为4000Data 4001Data ... 4299Data 第五部分。
    • 对于每个部分,我想以 2:1 的比例将文本文件分为训练数据和测试数据。因此,对于第一部分,0000Data0200Data 之间的文本文件将被放入训练数据中,0201Data0299Data 之间的文件将被放入测试数据中。根据我所指的示例任务,文件以 9:1 的比例划分,并以代码if filename.startswith('cv9'): 划分。因此,cv000cv899 之间的文本文件被放入训练数据中,cv900cv999 被放入测试数据中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    相关资源
    最近更新 更多