単語抽出ツール v0.42 展開: Bug fix
前回配布した単語抽出ツールv0.41にバグがあった。 KeyError: “Column(s) ['DBSchema'] do not exist” エラーが発生するバグを修正した単語抽出ツール v0.42 を配布する。
関連記事: 単語抽出ツールv0.41展開:単語のDBSchema発生頻度エントリを追加
キム・ギヨンさんが次のコメントでバグを知らせてきた。
こんにちは!
3つの実行方法の1つであるDBコメントなしでFileから単語を抽出する方法を使用したとき
(python word_extractor.py –in_path .\in –out_path .\out)txt、word、pptすべて
miniconda3\envs\wordextr\lib\site-packages\pandas\core\apply.py”, line 601, in normalize_dictlike_arg raise KeyError(f”Column(s) {cols_sorted} do not exist”)
KeyError: “Column(s) ['DBSchema'] do not exist”
エラーが発生しながら終了しています。
DB commentファイルが入る2回、3回実行方法はエラーなく動作しています。
97行目に 'DBSchema': [db_schema] を入れてみましたが今回は
in get_grouper raise KeyError(gpr) KeyError: 'Word' というエラーが発生した状況です。
ありがとうございます。
変更したコードは次のとおりです。
if 'DB' in df_result.columns: df_group = df_result.groupby('Word').agg({ 'Word': 'count', 'Source': lambda x: '\n'.join(list(x)[:10]), 'DBSchema': 'nunique' }).rename(columns={ 'Word': 'Freq', 'Source': 'Source', 'DBSchema': 'DBSchema_Freq' }) else: df_result['DB'] = '' df_result['Schema'] = '' df_result['Table'] = '' df_result['Column'] = '' df_result['DBSchema'] = '' df_group = df_result.groupby('Word').agg({ 'Word': 'count', 'Source': lambda x: '\n'.join(list(x)[:10]) }).rename(columns={ 'Word': 'Freq', 'Source': 'Source' })
columnリストに「DB」がある時とない時を分けて処理するようにした。
単語抽出ツールv0.42ソースコード全体は、次のURLで確認できます。
https://github.com/DAToolset/ToolsForDataStandard/blob/main/WordExtractor/word_extractor.py