0

単語のデータセットから言語モデルをトレーニングする必要があります。これには、モデルが機能する唯一の方法であるため、すべてのテキストを1つの列に配置する必要があります。これまでは、Pythonを使用して必要に応じて、問題なくドキュメントを1つの列に分割できました。

例:元のドキュメント

Zomer、1951
De warld 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 geenenkelekaart。

必要に応じて文書化する

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が私に代わってそれを実行できることを知っているので、手動で実行しても役に立たないので、貴重な助けを求めています。

4

2 に答える 2

3

ファイルの名前がparagraph.txtの場合

f = open('paragraph.txt', 'r')

単語 = []

行 = f.readlines()

行の行の場合:

   words.extend(line.split())

上記の行はすべての単語のリストを作成します

そして、これらは削除することです。と、その言葉から

for i in range(len(words)):

    words[i] = words[i].replace('.' ,'')

    words[i] = words[i].replace(',' ,'')

    #here you can add a line to remove some other character

単語を印刷する場合:

一言一句:

    print(word)
于 2013-02-10T20:00:46.473 に答える
0

句読点とテキストがスペースで区切られていることを確認すれば、目的を達成できると思います。正規表現は、英数字以外の文字の前にスペースを追加するため、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',
 '.']
于 2013-02-08T15:11:36.243 に答える