あるpythonコードの理解不足のため質問です
解決したいこと
python自然言語処理に関する本で、文章の中から「有名」「おいしい」という単語と特定の地名を含むものを探すプログラムが掲載されています。
関数と引数、リストが入り組んでおり、コードの内容が理解できずにいます。
このプログラムは難しいのかそうでもないのか、コードの書き方として一般的なのか、そうでないのか、レベル的にはどれくらいの難易度なのか知りたく、コード自体の問題があるわけではないですが、質問させていただきました。
該当するソースコード
def contain_yumei(tokens):
for token in tokens:
if token['lemma'] == '有名':
return True
return False
def contain_LOC(tokens):
for token in tokens:
if token.get('NE', '').endswith('LOCATION'):
return True
return False
def contain_oishii(tokens):
for token in tokens:
if token['lemma'] == 'おいしい':
return True
return False
def meibutsu_rule(feature):
if feature['contain_yumei'] and feature['contain_LOC']:
return 1
if feature['contain_oishii']:
return 1
return 0
def get_rule():
return {
'partial': {
'contain_yumei': contain_yumei,
'contain_LOC': contain_LOC,
'contain_oishii': contain_oishii,
},
'compound': meibutsu_rule
}
def convert_into_features_using_rules(sentences, rule):
features = []
for doc_id, sent, tokens in sentences:
feature = {}
for name, func in rule['partial'].items():
feature[name] = func(tokens)
features.append(feature)
return features
def classify(features, rule):
return [rule['compound'](feature) for feature in features]
上記コードは参考書からそのまま転載しております。もし著作権の侵害などの問題があるようであれば、
この質問自体を削除いたしますので、ご了承ください。