2011-09-26 4 views
3

나는 내 웹 사이트에 대해 자주 용어로 사전을 작성하려고합니다. 따라서 기본적으로 데이터베이스에서 단락을 검색 할 것이고이 단락은 앞서 언급 한 사전에 나타나는 용어를 포함 할 가능성이 큽니다. 내가 찾고있는 것은 단락 텍스트를 구문 분석하고 해당 텍스트에 사전 항목이 포함될 수있는 사전 용어를 매핑하는 좋은 방법입니다 (그리고 빠름).파이썬으로 텍스트를 구문 분석하고 사전 단어로 매핑하기

이 작업을 도와 줄 파이썬 모듈이 있습니까? 나는 멋진 것을 찾고 있지는 않지만 빠를 것이다.

감사합니다.

+0

정확한 단어 일치를 찾고 있습니까? I. e. 만약 당신의 항목이'foo'라면,'confoobulation' 내에서 찾으시겠습니까? –

+0

오 예. 전에 이것을 정리 했어야했다. 나는 정확한 일치를 찾고있다. 따라서 단어 "foo"가 사전에있는 경우에만 "foo"라는 단어가 텍스트 ("foobar"또는 "confoobulation"이 아님)와 일치해야합니다. –

답변

2

이런 종류의 제품입니까? 모든 사전의 키를 시작하고 편지로 끝 (또는 숫자 또는 밑줄)있을 경우에만 안정적으로 작동

>>> s = "abc def, abcdef" 
>>> w = {"abc": "xxx", "def": "yyy"} 
>>> def replace(text, words): 
...  regex = r"\b(?:" + "|".join(re.escape(word) for word in words) + r")\b" 
...  reobj = re.compile(regex, re.I) 
...  return reobj.sub(lambda x:words[x.group(0)], text) 
... 
>>> replace(s, w) 
'xxx yyy, abcdef' 

참고. 그렇지 않으면 \b 단어 경계가 일치하지 않습니다.

+0

좋아요! 그것은 완벽 해 보입니다. 고마워요 :) –

관련 문제