【学習・実装構成】
1. ファイル管理
project_root/
├── texts/ # 古文・漢文原文(例:徒然草・論語)
├── analysis/ # 形態素解析・構文解析結果(JSON/CSV)
├── graphs/ # 構造図・係り受けグラフ
├── notebooks/ # Python実験ノート
└── markdowns/ # Markdown形式の整形記事・教材
2. 形態素解析・構文解析(古典文/漢文)
!pip install fugashi spacy ginza unidic-lite
import spacy
nlp = spacy.load("ja_ginza")
text = "春はあけぼの。やうやう白くなりゆく山ぎは。"
doc = nlp(text)
for token in doc:
print(token.text, token.lemma_, token.pos_, token.dep_, token.head.text)
出力:語彙・基本形・品詞・依存関係・係り先を自動抽出。
3. グラフ化・構造図化
import networkx as nx
import matplotlib.pyplot as plt
edges = [(tok.head.text, tok.text) for tok in doc if tok.head.text != tok.text]
G = nx.DiGraph(edges)
nx.draw(G, with_labels=True, node_size=2000, font_size=10)
plt.show()
→ 係り受け・主述構造を可視化(古文の「ぞ・なむ・や・か」結びを確認可能)。
4. Markdown整形例
## 徒然草 第1段 構文解析
> 春はあけぼの。やうやう白くなりゆく山ぎは。
|語|品詞|係り受け|主語|述語|
|--|--|--|--|--|
|春|名詞|主題|―|―|
|あけぼの|名詞|述語補語|春|あけぼのなり|
|白く|形容詞|修飾|―|―|
|なりゆく|動詞|述語|―|―|
|山ぎは|名詞|場所|―|―|
5. Python × 自然言語処理(古典×AI)
- 頻度解析:語彙・助詞・係助詞の出現回数
- 構文統計:主語省略率・述語の品詞比率
- 意味ベクトル:古文語と現代語の語義距離(Word2Vec)
- スタイル分類:作者・時代別の文体クラスタリング
- 漢文構造変換:訓読文→原文構造対応表生成(SVO逆転構文の処理)
6. 応用(工学・教育・研究)
| 分野 | 活用例 |
|---|---|
| 教育 | 古典構文をAIで可視化・添削 |
| 工学 | 構文木データを自然言語処理モデルの訓練素材に利用 |
| 人文学 | 作者推定・時代分類の数理的検証 |
| 出版 | 自動注釈・語彙補足付きeテキスト生成 |
古文における「自立語」と「付属語」の識別と文節の見分け方
この教材は、古文における**自立語(じりつご)と付属語(ふぞくご)**を区別し、
文節を正しく区切るための基礎を示している。
【1】自立語(じりつご)
- 単独で意味を持つ語。
- 文節の先頭に位置する。
例文解析
昔(名詞)/男(名詞)/すみ(動詞)/けり(助動詞)
→ 「昔」「男」「すみ」 が自立語に該当する。
**「けり」**は意味を補助する助動詞なので付属語。
【2】付属語(ふぞくご)
- 単独では意味をもたない。
- 必ず自立語の下に位置する。
例
「に」「けり」などが付属語。
これらは自立語に接続して初めて意味を成す。
【3】文節の見分け方のコツ
「自立語を見つけて、その自立語の直前で切る」
例:文節区切り
昔/男/片田舎/に/すみ/けり
自立語の直前で切ることで、文の構造が明確になる。
【4】Python+自然言語処理による再現方法
形態素解析ツール(例:MeCab, spaCy, GiNZA)を用いて
語を「自立語(内容語)」と「付属語(機能語)」に分類し、
文節単位に再構成できる。
サンプルコード
!pip install fugashi spacy ginza unidic-lite
import spacy
nlp = spacy.load("ja_ginza")
text = "昔男片田舎にすみけり"
doc = nlp(text)
for token in doc:
print(token.text, token.pos_, token.dep_, token.head.text)
出力例
| 語 | 品詞 | 分類 |
|---|---|---|
| 昔 | 名詞 | 自立語 |
| 男 | 名詞 | 自立語 |
| 片田舎 | 名詞 | 自立語 |
| に | 助詞 | 付属語 |
| すみ | 動詞 | 自立語 |
| けり | 助動詞 | 付属語 |
【5】応用:文節区切りアルゴリズムの考え方
- 形態素解析で語を列挙
- 各語の品詞を取得
- 名詞・動詞・形容詞・副詞などを「自立語」と判定
- 助詞・助動詞・接続助詞を「付属語」として下位に接続
- 自立語の直前で区切る
単語の分類体系(古文・現代共通)
【1】単語の大分類
単語はまず、
- 自立語
-
付属語
の二つに分かれる。
【2】付属語
自立して意味をもたず、常に自立語に付く。
| 活用の有無 | 品詞 |
|---|---|
| 活用がある | 助動詞 |
| 活用がない | 助詞 |
【3】自立語
単独で意味を持つ。さらに「活用の有無」で分かれる。
(1) 活用がないもの
| 品詞 | 説明 |
|---|---|
| 名詞 | 物や事柄を表す |
| 副詞 | 用言を修飾する |
| 連体詞 | 体言を修飾する |
| 接続詞 | 文をつなぐ |
| 感動詞 | 感情を表す |
(2) 活用があるもの
→ 用言(ようげん)と呼ばれる。
| 品詞 | 説明 |
|---|---|
| 動詞 | 動作・存在を表す |
| 形容詞 | 性質・状態を表す |
| 形容動詞 | 名詞的性質+「なり・たり」などの語尾をもつ |
【4】まとめ表
| 区分 | 活用 | 品詞例 | 自立性 |
|---|---|---|---|
| 自立語 | あり | 動詞・形容詞・形容動詞 | 単独で意味を持つ |
| 自立語 | なし | 名詞・副詞・連体詞・接続詞・感動詞 | 単独で意味を持つ |
| 付属語 | あり | 助動詞 | 単独では意味をもたない |
| 付属語 | なし | 助詞 | 単独では意味をもたない |
【5】Pythonでの応用(例)
形態素解析により、この分類を自動タグ付けできる。
!pip install fugashi unidic-lite
from fugashi import Tagger
tagger = Tagger()
text = "昔男ありけり"
for word in tagger(text):
print(word.surface, word.feature)
出力例:
昔, 名詞, 自立語
男, 名詞, 自立語
あり, 動詞, 自立語(用言)
けり, 助動詞, 付属語
この体系を理解すれば、古文の構文解析やPythonによる自動文節区切りアルゴリズムの設計が容易になる。