Python 在从头开始创建语料库的同时去掉.DS_存储文件
我对Python非常陌生,需要从头创建一个语料库。我对.DS\u存储文件有问题。我试着手动擦除它,用Terminal或Python擦除它,但没有任何效果。当.DS\u存储存在时,我无法进行NLP计算。这是我的代码:Python 在从头开始创建语料库的同时去掉.DS_存储文件,python,nlp,nltk,corpus,Python,Nlp,Nltk,Corpus,我对Python非常陌生,需要从头创建一个语料库。我对.DS\u存储文件有问题。我试着手动擦除它,用Terminal或Python擦除它,但没有任何效果。当.DS\u存储存在时,我无法进行NLP计算。这是我的代码: import nltk import random nltk.download('cmudict') nltk.download('wordnet') nltk.download('stopwords') nltk.download('averaged_perceptron_tagg
import nltk
import random
nltk.download('cmudict')
nltk.download('wordnet')
nltk.download('stopwords')
nltk.download('averaged_perceptron_tagger')
nltk.download('punkt')
from nltk.corpus import cmudict
from nltk.stem.wordnet import WordNetLemmatizer
from nltk.corpus import stopwords
import string
from nltk import word_tokenize
import os
from nltk.corpus.reader.plaintext import PlaintextCorpusReader
corpusdir = '/Users/username/nltk_data/corpusfilename'
corp = PlaintextCorpusReader(corpusdir, '.*')
corp.fileids() # gives me 6 fileids, 5 existing and one .DS_Store
corp.sents() # error: 'utf-8' codec can't decode byte 0xd5 in position 161: invalid
continuation byte
我使用的是Mac,建议使用if语句,这样语料库只能读取.txt而不能读取.DS_存储。我不知道怎么做。
find-名称“.DS_Store”-从以下位置删除
:
在Apple macOS操作系统中,.DS_Store是一个文件,用于存储其包含文件夹的自定义属性,例如图标的位置或背景图像的选择
因此,可能在任何地方都会有一个.DS_商店
在这一行:corp=PlaintextCorpusReader(corpusdir,'.'.'')
您可以选择哪些文件将在语料库中
第二个参数'.*
是一个正则表达式,用于选择要使用的文件。根据此参数,可以是“指定此语料库中文件ID的列表或regexp”
因此,在本例中,您可以将匹配所有内容的
'.*.
更改为匹配任何字符以及“.”和“txt”。或者,如果您知道需要的每个文件的名称,您可以使用文件名列表['file1.txt','file2.txt']
谢谢您的回复。我把它复制到Jupyter笔记本并运行了它,但它给了我一个语法错误(无效语法)。我应该在Terminal还是Python中运行它?您应该在Terminal中运行它。这里的主要目标是指向正确的文件,在这方面,您应该接受@ygorg给出的答案,并重新表述您的问题及其标题,以帮助未来的读者。非常感谢。非常感谢你!成功了。