2017-11-04 1 views
0

에 카운터에서 정보를 복용 나는 문장의 전체 파일을 가지고 있고 그와 유니 그램 싶지 : 이것은 내 코드이며, 하나의 편지를 받고파이썬 파일

을하고 나는 그것이를 얻으려면 단어

old_lines = open("f.final",'r').readlines() 
new_lines = [] 

for line in old_lines: 
    words = line.split() 
    new_lines.append(words) 

print new_lines 

for lines in new_lines: 
    c = Counter(str(lines)) 


with open("final.final", 'w') as f: 
    for k,v in c.items(): 
     f.write("{} {}\n".format(k,v)) 
+0

: 그리고이 모든 줄뿐 아니라 마지막 행을 수행해야합니다 라인 만 ... – alfasin

답변

1

당신은 문자열의 각 문자의 수를 소요하는 문자열 (예 : str(lines))에서 카운터를 구축하고 있습니다. 목록에서 카운터를 직접 작성해야합니다. - 마지막으로 당신을 떠나`C = 카운터 (STR (선))`당신이 카운터를 오버라이드 (override) 유지 :이 라인에서

with open("f.final") as f, open("final.final", 'w') as out_f: 
    # take count of all words from all lines 
    c = Counter(word for line in f for word in line.strip().split()) 

    # write to output file 
    for k, v in c.items(): 
     out_f.write("{} {}\n".format(k,v)) 
+0

그리고 bigram, trigram 등을하고 싶다면? – user8865346

+0

@ user8865346 그런 다음 nltk를 사용합니다. 표시 한 코드는 unigram을 시도한 것이므로 내 대답 만이 해결할 수 있습니다. . –

+0

'code' old_lines = 개방 ("f.final ','R ')의 readlines() new_lines = [] 라인 =' ''old_lines에서 라인 : 라인 = 라인 + 라인 인쇄 라인 토큰 = nltk.word_tokenize (선) bigrams의 =의 ngrams (토큰, 2) 인쇄 카운터 (bigrams) F = 개방 ("f2.final" 'w') f.write ('여기 뭐? ') 'code' 나는 이것을 가지고 있지만 카운터에서 파일을 가져올 수없는 동일한 문제가있다. bigram을 올바르게 출력하지만 어떻게해야할지 모른다. – user8865346