나는 이것이 일반적인 질문 인 것을 알고 있지만 해당 답변을 찾지 못했습니다. 이전 함수에서 HTML 페이지를 스크랩 한 단어 목록에서 구두점을 제거하려고합니다.파이썬 목록에서 구두점 제거하기
import re
def strip_text():
list_words = get_text().split()
print(list_words)
for i in range(len(list_words)):
list_words = re.sub("[^a-zA-Z]"," ",list_words)
list_words = list_words.lower()
return list_words
print(get_text())
print(strip_text())
내가의 re.sub 비트가 아닌 문자열 목록에 사용하도록되어 있기 때문에이 작동하지 않는 것을 깨닫게 : 여기에 내가 가진 것입니다. 이 작업을 수행하는 데에도 똑같이 효율적인 방법이 있습니까? 단어 목록을 다시 문자열로 만들어야합니까?
편집 :이 문제는 내가 말한 것처럼 HTML 페이지에서 텍스트를 스크랩하고 있습니다. 코드는 제가 위에있는 것은 다음과 같습니다 전에 :
from bs4 import BeautifulSoup
import requests
from collections import Counter
import re
tokens = []
types= Counter(tokens)
#str_book = ""
str_lines = ""
import string
def get_text():
# str_lines = ""
url = 'http://www.gutenberg.org/files/1155/1155-h/1155-h.htm'
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data, 'html.parser')
text = soup.find_all('p') #finds all of the text between <p>
i=0
for p in text:
i+=1
line = p.get_text()
if (i<10):
continue
print(line)
return line
그래서 단어의 목록은 내가 사용 아가사 크리스티의 책에있는 모든 단어의 목록이 될 것입니다. 잘하면 도움이됩니다.
이것은 귀하의 질문에 직접적으로 대답하지 않지만 Beautiful Sup 패키지가 웹 스크래핑과 관련된 많은 활동을 처리하고 있음을 지적하고자합니다. 따라서 현재 자신의 기능을 작성하고 있다면 – HFBrowning
을 살펴볼 가치가 있습니다. 감사합니다. 예, 내 get_text 함수에서 BeautifulSoup를 사용합니다! 확실히 그 부분을 더 쉽게 만듭니다. – Alanan
'수입 문자열; list_words = [list_words의 s에 대한 s.translate (없음, string.punctuation)], [this] (http : // stackoverflow.com/a/266162/6779606) 답변. – PyNoob