やりたいこと
漢字だけの文字列があった場合、それが日本語か中国語か、判定したい。
例えば、
- 東京都千代田区富士見町(ただの住所)
- 在東京都千代田區富士見町見面吧(中国語で、富士見町で会いましょう)
について、1は日本語に、2は中国語と判定したい。
しかしRやPythonの各種の自動判定のパッケージでも、
「漢字のみテキスト」については日本語と中国語に分けるのは難しいらしく、
しばしば1も中国語に判定されていまう。
例えばRで代表的な言語判定パッケージのfrancでも、下記の結果となる。(cmnは中国語。whitelistにjpnと入れても駄目)

困った。
雑な解決策
こちらの方のアイデアを拝借した。
https://qiita.com/ry_2718/items/47c21792d7bbd3fe33b9
中国語である = 簡体字や繁体字、つまり日本語には存在しない漢字が使われている
として、文字列を日本語文字コードに変換したときに、文字が無くなる=中国語である
とするものである。
これをRで書くと、以下の通り。(utf-8でコーティングしている前提)
iconv("東京都千代田区富士見町",from = "utf-8",to = "cp932")
iconv("在東京都千代田區富士見町見面吧",from = "utf-8",to = "cp932")
実行結果。

「東京都千代田区富士見町」は簡体字や繁体字を含まないので、そのまま変換される。
つまり日本語である可能性が残る。
一方で「在東京都千代田區富士見町見面吧」は「吧」が日本語には存在しない文字なので、NAとなる。
つまり確実に中国語である。
まとめ
上記の手法を使えば、francなどの言語判定パッケージで「中国語」と判定されたテキストについて、
・確実に中国語である文字列
・実は日本語かもしれない文字列
に分けることができる。
後者については、簡体字や繁体字を含まない中国語の文字列も存在するため、日本語であるとも言い切れないが、
実は日本語なのに、文章を誤って中国語と断定してしまうことは避けられる。
「中国語の文字列だけを除外して、日本語の文字列は極力残したい」といったような場合には
有効な手法と考えられる。
注意
対象とする文字列に、簡体字・繁体字以外にもiconvにかけるとNAになる文字、たとえばutr-8にしか存在しない絵文字などが入っていると
誤作動してしまうので、別途処理が必要。
おわり
おわりです。お疲れさまでした。