Pythonだけでクロスワードパズルを自動生成 〜自然言語処理・組合せ探索・Webアプリ開発〜
馬嶋海斗
クロスワードパズルを自動生成するWebアプリケーションを題材に、API呼び出し・自然言語処理・組合せ探索・可視化など多様な処理を手軽に実装できるPythonの応用性の高さを報告する。アプリケーションでは、ニュース記事からクロスワードパズルの解として適切な単語とその説明を抽出する自然言語処理パートと、入力された単語から矛盾の無いクロスワードパズルを生成する探索パートを全てPythonで記述した。自然言語処理パートでは記事情報を取得するAPIを呼び出し、読み仮名付与や形態素解析などの自然言語処理ライブラリを活用する。探索パートでは、クロスワードパズルのレイアウトを設計する組合せ探索を実装した。さらに、これらの処理の可視化には、PythonのWebアプリケーションフレームワークであるStreamlitを用いている。発表では、デモを交えながらアプリケーションを紹介し、開発における知見を共有する。
Tips of development with Python
track 3