Использовать кастомный коллектор с пилуценом 2.9.4

Я пытаюсь рассчитать термины с высоким PMI для конкретного токена в пилицене. Коллега дал мне некоторый Java-код, который работает, но у меня возникли проблемы с переводом его на Python. В частности, код опирается на пользовательский коллектор. Вот начальный код запроса:

def __init__(self, some_token, searcher, analyzer):
    super(PMICalculator, self).__init__()

    self.searcher = searcher
    self.analyzer = analyzer
    self.escaped_token = QueryParser.escape(some_token)
    self.query = QueryParser("text",self.analyzer).parse(self.escaped_token)
    self.term_count_collector = TermCountCollector(searcher)
    self.searcher.search(self.query, self.term_count_collector)
    self.terms = self.term_count_collector.getTerms()

Вот класс Term Count Collector: http://snipt.org/vgGi8

Этот код ломается на self.searcher.search с ошибкой:

File <filename>, line 26, in __init__
    self.searcher.search(self.query, self.term_count_collector)
lucene.JavaError: org.apache.jcc.PythonException: collect() takes exactly 2 arguments (3    given)
TypeError: collect() takes exactly 2 arguments (3 given)

    Java stacktrace:
org.apache.jcc.PythonException: collect() takes exactly 2 arguments (3 given)
TypeError: collect() takes exactly 2 arguments (3 given)

    at org.apache.pylucene.search.PythonHitCollector.collect(Native Method)
    at org.apache.lucene.search.HitCollectorWrapper.collect(HitCollectorWrapper.java:46)
    at org.apache.lucene.search.TermScorer.score(TermScorer.java:86)
    at org.apache.lucene.search.TermScorer.score(TermScorer.java:74)
    at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:252)
    at org.apache.lucene.search.Searcher.search(Searcher.java:110)

Я провел поиск в Google, но безрезультатно - я новичок в lucene и не могу сказать, является ли это просто функцией, которая не поддерживается в 2.9.4, или это проблема с пилюценом, или мой код неверен. Пожалуйста помоги!

0 ответов

Другие вопросы по тегам