몇 가지 간단 한 텍스트 데이터 예비 처리 방법

다운로드 데이터:http://www.gutenberg.org/cache/epub/5200/pg5200.txt
시작 과 끝 에 있 는 정 보 를 삭제 하고 시작 을 다음 과 같이 합 니 다.
One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.
끝 은 다음 과 같다.
And, as if in confirmation of their new dreams and good intentions, as soon as they reached their destination Grete was the first to get up and stretch out her young body.
저장: metamorphosisclean.txt
데이터 불 러 오기:
filename = 'metamorphosis_clean.txt'
file = open(filename, 'rt')
text = file.read()
file.close()

1. 빈 칸 으로 구분:
words = text.split()
print(words[:100])

# ['One', 'morning,', 'when', 'Gregor', 'Samsa', 'woke', 'from', 'troubled', 'dreams,', 'he', ...]

2. re 로 단 어 를 구분한다: 이전 방법 과 의 차 이 는 'armour - like' 가 두 단어 로 인식 되 고 'armour', 'like', 'What \' s' 가 'What', 's' 로 바 뀌 었 다 는 것 이다.
import re
words = re.split(r'\W+', text)
print(words[:100])

3. 빈 칸 으로 구분 하고 구두점 을 제거 합 니 다. string 의 string. puntuation 은 어떤 것 이 구두점 기호 인지 알 수 있 습 니 다. Maketrans () 는 빈 맵 표를 만 들 수 있 습 니 다. 그 중에서 string. puntuation 은 지 울 목록 입 니 다. translate () 는 하나의 문자열 집합 을 다른 집합 에 투사 할 수 있 습 니 다. 즉, 'armour - like' 는 'armourlike' 로 인식 되 고 있 습 니 다.'What' s 가 'Whats' 로 인식 되 었 습 니 다.
words = text.split()
import string
table = str.maketrans('', '', string.punctuation)
stripped = [w.translate(table) for w in words]
print(stripped[:100])

4. 모두 소문 자로 변 한다: 물론 대문자 로 word. upper () 를 사용 할 수 있다.
words = [word.lower() for word in words]
print(words[:100])

NLTK: nltk. 다운 로드 () 설치 후 팝 업 대화 상자, all 선택, download 클릭
import nltk
nltk.download()

5. 문장 나 누 기: sent 사용tokenize()
from nltk import sent_tokenize
sentences = sent_tokenize(text)
print(sentences[0])

6. 단어 나 누 기: 워드 사용tokenize, 이번 'armour - like' 아니면 'armour - like', 'What \' s' 가 'What', 's',
from nltk.tokenize import word_tokenize
tokens = word_tokenize(text)
print(tokens[:100])

7. 필터 구두점: alphabetic 만 유지 하고 다른 것 은 거 르 면 'armour - like' 와 's' 도 거 르 게 됩 니 다.
from nltk.tokenize import word_tokenize
tokens = word_tokenize(text)
words = [word for word in tokens if word.isalpha()]
print(tokens[:100])

8. 깊 은 의미 가 없 는 stop words 를 걸 러 냅 니 다. stopwords. words ('english') 에서 이러한 어 표를 볼 수 있 습 니 다.
from nltk.corpus import stopwords
stop_words = set(stopwords.words('english'))
words = [w for w in words if not w in stop_words]
print(words[:100])

9. 어근 으로 전환: porter. stem (word) 을 실행 하면 단어 가 해당 하 는 어근 형식 으로 변 한다. 예 를 들 어 'fishing', 'fished', 'fisher' 는 'fish' 로 변 한다.
from nltk.tokenize import word_tokenize
tokens = word_tokenize(text)

from nltk.stem.porter import PorterStemmer
porter = PorterStemmer()
stemmed = [porter.stem(word) for word in tokens]
print(stemmed[:100])

학습 자원:http://blog.csdn.net/lanxu_yy/article/details/29002543https://machinelearningmastery.com/clean-text-machine-learning-python/
원문 을 추천 하면 원 하 는 것 을 찾 을 수 있 습 니 다. [입문 문제] [TensorFlow] [딥 러 닝] [학습 강화] [신경 망] [기계 학습] [자연 언어 처리] [챗 봇]

좋은 웹페이지 즐겨찾기