2014-01-18 4 views
1

텍스트 입력 블록에서 특정 구두점 문자 사이에 나오는 단어의 수를 계산하려면 Python을 사용하고 싶습니다. 예를 들어,이 시점까지 기록 된 모든 것을 이러한 분석은 표현 될 수있는 등 : 파이썬에서 구두점 문자 사이의 단어 수를 계산합니다.

[23, 2, 14]

... 상기 기간 제외 문장 부호가없는 첫 번째 문장 때문에 끝 부분에는 23 단어가 있고 다음에 오는 "예를 들어"문구에는 2가 나오고 나머지는 콜론으로 끝나는 나머지는 14 개가 있습니다.

이것은 너무 어렵지는 않을 것입니다. 특히 "Pythonic"으로 보이는 "철학을 재발견하지 마십시오"라는 철학은 이미 그 작업에 특히 적합한 어떤 것이 있습니까?

+0

, 당신이 해결하려는 문제의 실제 예를? – geekazoid

+1

나는 캐주얼 웹 검색 (단어 빈도 카운트 등을위한 많은 파서를 보여줌)을 시도했다. 아마 그 자체로 뼈를 쓰는 것이별로 문제가되지 않을 정도로 사소한 것입니다. 그것은 전문가가 아닌 것처럼 묻는 것은 결코 아프지 않습니다. 문제는 더 많은 실험입니다. 이것은 단지 그것의 작은 구성 요소 일 것입니다. – nicole

답변

3
punctuation_i_care_about="?.!" 
split_by_punc = re.split("[%s]"%punctuation_i_care_about, some_big_block_of_text) 
words_by_puct = [len(x.split()) for x in split_by_punc] 
+0

"punctuation_i_care_about"에 쉼표를 잊어 버렸습니다. 그것이 의미하는 바에 따르면 op가 찾고있는 것을 출력하지 않을 것입니다. – Ffisegydd

+0

Joran의 답변 = 사소한 부분에 대한 예제, @geekazoid :-) Python은 훌륭합니다. – nicole

3

Joran는 나를 이길,하지만 난 내 방식을 추가 할 것입니다 :

from string import punctuation 
import re 

s = 'I want to use Python to count the numbers of words that occur between certain punctuation characters in a block of text input. For example, such an analysis of everything written up to this point might be represented as' 

gen = (x.split() for x in re.split('[' + punctuation + ']',s)) 

list(map(len,gen)) 
Out[32]: [23, 2, 14] 

(내가 map 사랑) 또한

+0

나는 일반적으로 함수형 프로그래밍을 좋아한다;) – Cu3PO42

관련 문제