我必须从一个词汇数据集中训练一个语言模型。为此,我只需要将所有文本安排在一列中,因为这是模型工作的唯一方式。到目前为止,我可以根据需要使用Python将文档分割成一个列,而不会出现任何问题。
例如:原始文档
佐默,1951年 wereld blauw van een wolkenloze zomerhemel,het goudgroen van koel,geruststellend naaldbos en het betonnen weg,die nieuw op,hij stond nog op en enkele kaart。
按要求提供文件
Zomer,
1951.
De
wereld
bestond
uit
het
wazige
blauw
van
een
wolkenloze
zomerhemel,
het
goudgroen
van
koel,
geruststellend
naaldbos
en
het
lijnrechte
wit
van
de
betonnen
weg,
die
nieuw
was,
hij
stond
nog
op
geen
enkele
kaart.当我试图将符号(逗号、冒号、分号等)放入一个新行并在每个句号(.)之后增加一个空白时,问题就开始了。例如:
Zomer
,
1951
.
De
wereld我还没有找到合适的方法。到目前为止,我已经尝试过使用.split()和.find()等函数的不同方式,但是没有任何积极的结果。打开文件后:
fileHandle = open("C:\Language Model\Corpora\Computing Clients 3.txt",'r')我尝试过循环和条件,但没有任何效果。到目前为止所取得的所有结果如下:
AttributeError: 'list' object has no attribute 'find'我知道我可能遗漏了什么,这就是为什么我请求您提供宝贵的帮助,因为这些文件太大了,手动执行它是没用的,因为知道Python可以为我做到这一点。
发布于 2013-02-10 20:00:46
如果您的文件名为paragraph.txt,则
F=开始(‘段.open’,'r') 字= [] lines = f.readlines() 行为行: words.extend(line.split())
上面的一行列出了所有单词
这些是要移除的。从这些话来看
在范围内(连(字)): wordsi = wordsi.replace('.‘,'')字to = wordsi.replace(',’,'') #在这里您可以添加一行以删除其他字符
用于印刷下列文字:
用语言表达: 印刷(字)
发布于 2013-02-08 15:11:36
我认为,如果你确保标点符号与带有空格的文本分开,你就能实现你想要的结果。正则表达式在任何非字母数字字符之前加上一个空格,因此它可以与任何前面的单词分别为split。
>>> import re
>>> text = "Zomer, 1951 De wereld bestond uit het wazige blauw van een wolkenloze zomerhemel, het goudgroen van koel, geruststellend naaldbos en het lijnrechte wit van de betonnen weg, die nieuw was, hij stond nog op geen enkele kaart."
>>> text2 = re.sub(r'([^a-zA-Z0-9-]+)',r' \1',text)
>>> text2
'Zomer , 1951 De wereld bestond uit het wazige blauw van een wolkenloze zomerhemel , het goudgroen van koel , geruststellend naaldbos en het lijnrechte wit van de betonnen weg , die nieuw was , hij stond nog op geen enkele kaart .'
>>> text2.split()
['Zomer',
',',
'1951',
'De',
'wereld',
'bestond',
'uit',
'het',
'wazige',
'blauw',
'van',
'een',
'wolkenloze',
'zomerhemel',
',',
'het',
'goudgroen',
'van',
'koel',
',',
'geruststellend',
'naaldbos',
'en',
'het',
'lijnrechte',
'wit',
'van',
'de',
'betonnen',
'weg',
',',
'die',
'nieuw',
'was',
',',
'hij',
'stond',
'nog',
'op',
'geen',
'enkele',
'kaart',
'.']https://stackoverflow.com/questions/14775379
复制相似问题