自然言語処理で、単語に品詞付けを行い、品詞が以下のように表示されたとします.
(1)名詞-普通名詞-副詞可能
(2)助動詞(助動詞の下には下位分類が存在しないので,もともと第一階層までしか表示されない)
(1)の場合は,次のコードで第一階層の”名詞”のみを抜き出すことができます.
python
1>>> m = re.match(r"(.*?)(?=-)","名詞-普通名詞-副詞可能") 2>>> m.group() 3'名詞'
しかし,(2)に対して同じパターンを用いると,"-"が品詞情報の中に存在しないので,何もマッチしません.
python
1>>> m = re.match(r"(.*?)(?=-)","助動詞") 2>>> m.group() 3Traceback (most recent call last): 4 File "<stdin>", line 1, in <module> 5AttributeError: 'NoneType' object has no attribute 'group'
if文などを使ってソース文字列に"-"が存在するかしないかで場合分けをして対処することもできなくはないですが,同じパターンを用いて,第三階層まで存在する場合でも,第一階層しか存在しない場合でも,きちんと第一階層だけを抽出できるような書き方は存在しますでしょうか?
なお,pythonのバージョンは,3.7.6です.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/03 09:37