2
저는 NLP 및 IR 프로그램을 처음 사용합니다. 깊은 NLP 파이프 라인, 즉 Lemmatizing, Dependency Parsing 기능을 문장 인덱싱에 추가하려고합니다. 다음은 내 스키마 및 검색 자입니다.Whoosh가 포함 된 Deep NLP 파이프 라인
my_analyzer = RegexTokenizer()| StopFilter()| LowercaseFilter() | StemFilter() | Lemmatizer()
pos_analyser = RegexTokenizer() | StopFilter()| LowercaseFilter() | PosTagger()
schema = Schema(id=ID(stored=True, unique=True), stem_text=TEXT(stored= True, analyzer=my_analyzer), pos_tag= pos_analyser)
for sentence in sent_tokenize_list1:
writer.add_document(stem_text = sentence, pos_tag = sentence)
for sentence in sent_tokenize_list2:
writer.add_document(stem_text = sentence, pos_tag = sentence)
writer.commit()
with ix.searcher() as searcher:
og = qparser.OrGroup.factory(0.9)
query_text = MultifieldParser(["stem_text","pos_tag"], schema = ix.schema, group= og).parse(
"who is controlling the threat of locusts?")
results = searcher.search(query_text, sortedby= scores, limit = 10)
이것은 맞춤 분석기입니다.
class PosTagger(Filter):
def __eq__(self, other):
return (other
and self.__class__ is other.__class__
and self.__dict__ == other.__dict__)
def __ne__(self, other):
return not self == other
def __init__(self):
self.cache = {}
def __call__(self, tokens):
assert hasattr(tokens, "__iter__")
words = []
tokens1, tokens2 = itertools.tee(tokens)
for t in tokens1:
words.append(t.text)
tags = pos_tag(words)
i=0
for t in tokens2:
t.text = tags[i][0] + " "+ tags[i][1]
i += 1
yield t
다음과 같은 오류가 발생합니다.
내가 잘못하고 있니? 이것은 검색 엔진에 NLP 파이프 라인을 추가하는 적절한 방법입니까?