2017-09-26 4 views
0

다음 텍스트 파일 디렉터리에서 문장을 추출하는 코드가 있습니다.팬더 데이터 프레임에 문자열을 추가하는 방법은 무엇입니까?

# -*- coding: utf-8 -*- 
from nltk.tokenize import sent_tokenize 
import pandas as pd 

directory_in_str = "E:\\Extracted\\" 
directory = os.fsencode(directory_in_str) 

for file in os.listdir(directory): 
    filename = os.fsdecode(file) 
    with open(os.path.join(directory_in_str, filename), encoding="utf8") as f_in: 
     for line in f_in: 
      sentences = sent_tokenize(line) 

내가 말을하는 것입니다 How to find ngram frequency of a column in a pandas dataframe?

에 따라 문장에서의 n 그램의 주파수 카운트를 구축 할 수 있도록 그 dataframe에 문장을 팬더 dataframe를 구축하고 추가 싶습니다 나는 그때 할 수 있도록하는 것이 df = pd.DataFrame([], columns=['description'])에 문장을 추가해야합니다

from sklearn.feature_extraction.text import CountVectorizer 
word_vectorizer = CountVectorizer(ngram_range=(1,2), analyzer='word') 
sparse_matrix = word_vectorizer.fit_transform(df['description']) 
frequencies = sum(sparse_matrix).toarray()[0] 
pd.DataFrame(frequencies, index=word_vectorizer.get_feature_names(), columns=['frequency']) 

가 무엇 df Dataframe에 문장을 추가하는 코드 것입니까?

답변

1

추출 코드를 약간 변경해야합니다. sentences을 외부에 선언하고 필요에 따라 extend을 보관하십시오.

sentences = [] 
for file in os.listdir(directory): 
    filename = os.fsdecode(file) 
    with open(os.path.join(directory_in_str, filename), encoding="utf8") as f_in: 
     for line in f_in: 
      sentences.extend(sent_tokenize(line)) 

일단, 간단하게 초기화 할 당신이 같은 df :

df = pd.DataFrame({'Description' : sentences}) 
+0

내가 할 경우'ngram_freq = pd.DataFrame (주파수, 인덱스 = word_vectorizer.get_feature_names(), 열 = [ '주파수'])'와'df.index.name = 'ngram'' 그리고'ngram_freq [ngram_freq.ngram =='youtube ']'유튜브의 빈도를 알아 내지 못합니다. 그걸 어떻게 할 수 있을지 생각해? – Superdooperhero

+0

@Superdooperhero 당신은 다음을 의미합니까? ngram_freq [ngram_freq.index == 'youtube']'? –

+0

네, 그게'ngram_freq.index.name = 'ngram''이어야합니다. – Superdooperhero

관련 문제