Power BIと付き合って数年たちますが、まだまだ日本語処理が弱いですね。
ある案件で、単語がひらがななのか、かたかななのか、他の文字と混じっているのか判定する必要が出てきました。
以下のように書いてみました。PowerQueryってリスト処理が充実していて重宝します。
let
ソース = (文字列) => let
ソース = 文字列,
ひらがなマスター = {"あ".."ん","ー"},
カタナカマスター = {"ア".."ン","ー"},
カナかなマスター = ひらがなマスター & カタナカマスター,
ABCマスター = {"A".."Z","a".."z","A".."Z","a".."z"},
カナかなABCマスター = ひらがなマスター & カタナカマスター & ABCマスター,
文字列のリスト化 = Text.ToList(ソース),
文字種判定 = if List.ContainsAll(カタナカマスター,文字列のリスト化) then "カナのみ"
else if List.ContainsAll(ひらがなマスター,文字列のリスト化) then "かなのみ"
else if List.ContainsAll(カナかなマスター,文字列のリスト化) then "カナかな"
else if List.ContainsAll(ABCマスター,文字列のリスト化) then "ABCのみ"
else if List.ContainsAny(List.RemoveItems(カナかなABCマスター,{"の"}),文字列のリスト化)
then "かなAB漢字混在" //のを除く 鉄のトレイ など
else ""
in
文字種判定
in
ソース
ソース = 文字列,
ひらがなマスター = {"あ".."ん","ー"},
カタナカマスター = {"ア".."ン","ー"},
カナかなマスター = ひらがなマスター & カタナカマスター,
ABCマスター = {"A".."Z","a".."z","A".."Z","a".."z"},
カナかなABCマスター = ひらがなマスター & カタナカマスター & ABCマスター,
文字列のリスト化 = Text.ToList(ソース),
文字種判定 = if List.ContainsAll(カタナカマスター,文字列のリスト化) then "カナのみ"
else if List.ContainsAll(ひらがなマスター,文字列のリスト化) then "かなのみ"
else if List.ContainsAll(カナかなマスター,文字列のリスト化) then "カナかな"
else if List.ContainsAll(ABCマスター,文字列のリスト化) then "ABCのみ"
else if List.ContainsAny(List.RemoveItems(カナかなABCマスター,{"の"}),文字列のリスト化)
then "かなAB漢字混在" //のを除く 鉄のトレイ など
else ""
in
文字種判定
in
ソース
0 件のコメント:
コメントを投稿