2012-02-22 4 views
0

전체파이어 폭스를 사용하여 스톱 워드 제거

정리해야 할 텍스트가 있으며 대부분 "거의"작동합니다.

def removeStopwords(self, data): 
    with open(r'stopwords.txt') as stopwords: 
     wordList = [] 
     for i in stopwords: 
      wordList.append(i.strip()) 
     charList = list(data) 
     cat = ''.join(char for char in charList if not char in wordList).split() 
     return ' '.join(cat) 

이 페이지의 첫 번째 줄을보십시오. http://en.wikipedia.org/wiki/Paragraph이 경우에 관심이없는 모든 문자를 제거합니다.이 문자는 모두 영숫자가 아닌 문자입니다.

단락 (그리스어 단락에서 "옆에 쓰다"또는 "옆에 쓰다")은 특정 요점이나 생각을 다루는 서면 담화의 독립된 단위입니다. 단락은 하나 이상의 문장으로 구성됩니다. [1] [2] 단락의 시작은 새 줄에서 시작하여 나타납니다. 때로는 첫 줄이 들여 쓰기되기도합니다. 여러 번, 문단의 시작은 필 크로우 (pilcrow)에 의해 표시되었습니다 : ¶.

단어의 일부가 잘못 조합 된 경우를 제외하고는 출력이 매우 좋아 보이며 수정 방법이 확실하지 않습니다.

옆에 옆에 또는 서면으로 작성하는 그리스 paragraphos에서 단락은 소방대 원 단위

참고 단어 "소방대 원" "소방대 원"이었다이다.

EDIT : 문자 한 묶음 인 중지 단어 파일의 내용.

! $ % ^ 을 & * ( ) {} [ ] <

, . / | \ ? ~ ': ; "

는 난 단지 정말이 경우 문장 부호 있었다 문자를 제거하려고했기 때문에 나는 모든 단어의 목록이 필요하지 않습니다 밝혀졌습니다.

 cat = ''.join(data.translate(None, string.punctuation)).split() 
     print ' '.join(cat).lower() 
+0

stopwords.txt의 내용은 무엇입니까? 구두점 기호 목록이 아니라 오히려 말을 멈추시겠습니까? – geoffspear

+1

나는 보통 "stopword removal"을 실제 단어 ("of"또는 "the")를 제거하는 것으로 생각합니다. 하지만 실제로 여기서하려고하는 것은 특정 문자 (예 : 구두점을 지우는 방법)를 제거하는 것입니다. 그 맞습니까? –

+0

@Woble 스톱 워드는 영숫자가 아닌 문자 또는 문자와 숫자 이외의 문자로 가득 차 있습니다. – aeupinhere

답변

1

별도의 기능에 불용어/stopchars를로드

c=['a','h'] 
a= 'john' 
for item in c: 
    a =a.replace(item,'') 
    print a 

는 다음을 인쇄합니다.

파일 이름/경로를 하드 코딩하지 마십시오.

귀하의 wordList는 목록이 아닌 set이어야합니다.

그러나 단어가 아닌 문자로 작업하는 경우 str.translate를 조사하십시오.

+0

아니요 ... HW가 아니며이를 제거하거나 자카드 색인을 작성하기 위해 데이터에서 이러한 문자를 대체해야합니다. – aeupinhere

+0

이것은 내 문제를 해결했습니다. – aeupinhere

2

버전 2.x

다음 m를 교체 갈
line = 'hello!' 
line.translate(None, '!$%') #'hello' 

answers

+0

+1 익명 downvoter를 무시하십시오. 'str.translate'는 갈 길입니다. 비 영숫자 문자를 제거하는 예를 변경하십시오. –

-2

한 가지 방법은 사용하는 것 당신이 원하지 않는 문자의 철저한 목록을 가지고 있습니다.예를 들어

: 존 존

+0

흥미 롭습니다. 이런 식으로 할 때 나는 같은 결과를 얻는다. 에 대한 항목에 대한 단어 목록 : data = data.replace (item, '') 인쇄 데이터 – aeupinhere

관련 문제