2017-02-01 4 views
-1

파일에서 정지 단어를 제거하는 구문 분석기 또는 스크립트를 찾고 있습니다. 파일에서 정지 단어를 삭제하는 유닉스 스크립트 또는 파서

샘플 파일입니다

entities_0_confidence|entities_0_name|entities_0_entity|entities_1_confidence|relation_relation| 
-1.1956528741743269|ellen brown|Ellen_Brown|-3.9166730593775214|WOULD ATTORNEY FROM||||||||||||||||||||| 
-2.3889038197374015|rick santorum|Rick_Santorum||CRITICIZED||||||||||||||||||||| 
-1.5485422793287602|thomas jefferson|Thomas_Jefferson|-1.7299349891097682||IS LETTER TO||||||||||||||||||||| 
-1.229126527004769|lewis powell|Lewis_Powell_%28conspirator%29|-3.024385187632112|IS JUSTICE OF||||||||||||||||||||| 
-2.2268355006701155|michael bloomberg|Michael_Bloomberg|-2.1242762129476493|WON MAYOR OF À||||||||||||||||||||| 

이 단어 목록을 중지 할 수 있습니다 :

IS, OF ,WITH ,WON,WOULD,X,©,® FOR BEST ACTRESS PRESENTING,À,È,ÉS,ŞI,АND,И 
난 그냥 각 행에서 단어가 아닌 전체 라인을 제거 할

. 현재 스크립트는 다른 단어에서도이 단어를 제거합니다. 예를 들어

:

  • 파일 내 라인 -
  • 정지 단어 "이 라인의 사용을 중지하라고"- "받는 사람"
  • 출력 -
"이 줄을 사용하여 LD 특검팀"

내 파일/데이터 세트에 70,000 개의 항목이 있습니다.

+0

또한 현재 스크립트, 출력 및 가져올 출력을 표시해야합니다. –

답변

0

코드는 fields 변수에 전달 된 열 번호의 시작/끝/중간에서 정지 단어를 대체합니다.

fields="col_num=1“ #pass the column you want to remove stop words from 

    while word i; 
    do 
    str=“word=$i";  
    cat file | 'BEGIN{'$str';'$fields'} {gsub("^'$word'[ ]|[ ]'$word'$|^'$word'$",X,$col_num); gsub("[ ]'$word'[ ]", " ",$col_num); gsub(/^ /,X,$col_num); gsub(/ $/,X,$col_num); print}' > file".temp"; 
    mv file".temp" file; 

    done < stop_words.txt 

희망이 있습니다!