2011-12-13 6 views
0

私はこの問題で主演盲目行くことを約ので、私は聞いている:ここで議論がありませんか?

を私は1つの手がかりがあります:コードを再配置するには、エラーメッセージが違う:

私はエラーを取得する:min_analyzer = SpaceSeparatedTokenizer()| LowercaseFilter()| mitt_filter() 例外TypeError:は_ コール _()このコードから、正確に2つの引数(1は、与えられた)

取る:私はそうのようなコードを並べ替える場合は

import sqlite3 
from whoosh.fields import Schema, TEXT, ID 
from whoosh.index import create_in 
from whoosh.analysis import SpaceSeparatedTokenizer 
from whoosh.analysis import StopFilter 
from whoosh.analysis import LowercaseFilter 

mitt_filter = StopFilter(stoplist=frozenset(['and', 'is', 'it', 'an', 'as', 'at', 'have',  'in', 'yet', 'if', 'from', 'for', 'when', 'by', 'to', 'you', 'be', 'we', 'that', 'may', 'not', 'with', 'a', 'on', 'your', 'this', 'of', 'us', 'will', 'can', 'the', 'or', 'are', u'og', u'i', u'-', u'\\xa0', u'for', u'av', u'til', u'p\\xe5', u'the', u'and', u'as', u'med', u'er', u'en', u'of', u'to', u'har', u'Vi', u'kontakt', u'som', u'\\xe5', u'v\\xe5re', u'vi', u'in', u'oss', u'a', u'det', u'at', u'is', u'\\u2013', u'/', u'\\xbb', u'kan', u'by', u'skal', 'fra', u'ut', u'with', u'be', u'v\\xe5rt', u'mer', u'du', u'\\xa9', u'us', u'on', u'hopp', u'ogs\\xe5', u'Hopp']), minsize=2, maxsize=None, renumber=False) 

min_analyzer = SpaceSeparatedTokenizer() | LowercaseFilter() | mitt_filter() 

schema = Schema(Hoveddomene=ID, innhold=TEXT (stored=True,  analyzer=min_analyzer(removestops=False, positions=True)), webadresse=ID) 

ix = create_in('/Users/Sverdrup/virtualenv-1.6.1/whoosh/whoosh directory/', schema) 

を:

import sqlite3 

from whoosh.fields import Schema, TEXT, ID 
from whoosh.index import create_in 
from whoosh.analysis import SpaceSeparatedTokenizer 
from whoosh.analysis import StopFilter 
from whoosh.analysis import LowercaseFilter 

min_analyzer = SpaceSeparatedTokenizer() | LowercaseFilter() | StopFilter(stoplist=frozenset(['and', 'is', 'it', 'an', 'as', 'at', 'have', 'in', 'yet', 'if', 'from', 'for', 'when', 'by', 'to', 'you', 'be', 'we', 'that', 'may', 'not', 'with', 'a', 'on', 'your', 'this', 'of', 'us', 'will', 'can', 'the', 'or', 'are', u'og', u'i', u'-', u'\\xa0', u'for', u'av', u'til', u'p\\xe5', u'the', u'and', u'as', u'med', u'er', u'en', u'of', u'to', u'har', u'Vi', u'kontakt', u'som', u'\\xe5', u'v\\xe5re', u'vi', u'in', u'oss', u'a', u'det', u'at', u'is', u'\\u2013', u'/', u'\\xbb', u'kan', u'by', u'skal', 'fra', u'ut', u'with', u'be', u'v\\xe5rt', u'mer', u'du', u'\\xa9', u'us', u'on', u'hopp', u'ogs\\xe5', u'Hopp']), minsize=2, maxsize=None, renumber=False) 

schema = Schema(Hoveddomene=ID, innhold=TEXT (stored=True, analyzer=min_analyzer(removestops=False, positions=True)), webadresse=ID) 

ix = create_in('/Users/Sverdrup/virtualenv-1.6.1/whoosh/whoosh directory/', schema) 

この手がかりは、それが間違っているstopFilter関数の宣言だと私に信じていますが、私はそれがわかりません?

ご協力いただければ幸いです!

私は次のエラーを取得する:スキーマ=スキーマ(Hoveddomene = ID、innhold = TEXT(記憶され= trueの場合、アナライザ= min_analyzer(removestops =偽、位置= TRUE))、webadresse = ID) TypeError例外:_ _()を呼び出し

+0

デバッグするには、引数の間および/またはバイナリ演算子の後に改行を挿入してください。これにより、エラーの場所に関するより正確な情報が得られる場合があります。 –

答えて

1

あなたはおそらくそうでなければ、あなたの第二の試料と異なるインスタンス化されたオブジェクト、上__call__を実行している、mitt_filterをしたいです。

min_analyzer = SpaceSeparatedTokenizer() | LowercaseFilter() | mitt_filter 

あなたの第二のサンプルは、より正確であるとして、そのエラーはSchemaコンストラクタにそれを送信するときに、あなたはおそらくmin_analyzerに引数を渡すべきではないことを言っています。私は基本的にはanalyzer=min_analyzerがおそらくより正確であると言っており、removestopspositions引数は別の場所で提供する必要があります。

+0

ありがとうo'holy救い主。あなたの名前のマイケル・メリクエルは年を越えてルーキーの国のすべての永遠にエコーするでしょう! – Rookie

1

あなたanalyzer引数コンストラクタSchemには間違っている(1、与えられた)少なくとも2つの引数を取ります。アナライザは、__call__メソッドを持つ関数またはクラスでなければなりません。したがって、約callというエラーです。

http://packages.python.org/Whoosh/analysis.html

+0

私はTJDの答えがマイケル・メリケルと同じだと思っていますが、プログラミングには新しいので、私は本当に100歳になることはありません。だから、公平であれ、TJDにも多くのおかげで、彼にとっても+1は、彼の時間とともに助けて寛大であったからです。 (私はスタックオーバーフローの評判システムを解釈するので、私は完全に+1の指し示された目的の範囲内にあります。この方法でそれを使用すると、正しくなりますか?) – Rookie

関連する問題