大規模なデータや機能が必要ない場合もあります。形態素解析のための辞書を持たず、単にそれっぽく単語ごとに区切ることができればよいという、「割り切った用途」に用いるもので、便宜上「日本語パーサー」と呼びます。単語っぽいものに分割することが目的であり、品詞のデータなどは取得できないのが普通です。Framework化してAppleScriptから呼び出し、テストしています。正規表現を用いて助詞などをピックアップして、それを手掛かりに単語切り分けを行うもので、そのサイズからは想像できないぐらいまっとうに単語に切り分けてくれます。"す"}記号などがきちんと分離されなかったため、いまひとつ。自分でコマンド解釈用のParserを作ってみることにしました。"警告音「Basso」を最大音量で鳴らす。"鳴らす"}なぜか記号類などをすべて無視してしまうので、いまひとつ実用性がありませんでした。"警告音「Basso」を最大音量で鳴らす。"}実際に作ってテストしてみたところ、自分が必要なコマンド解析ぐらいの目的には十分に使えることがわかりました。単語切り分けについてはKuromojiと同じ結果が得られています。呼んだバージョンよりも明らかに高速化され、ネットワーク接続のない環境でも実行可能になりました。easyJParseの制約事項なお、easyJParseはすでに文章単位で分割されたテキストをコマンド解釈用に分解するため「だけ」に作ったものであり、長文を文章ごとに分割する機能は持っていません。別のプログラムやルーチンで文章ごとに分割してからeasyJParseで処理してください。of」の演算結果を利用しており、言語環境が日本語に設定していない環境で同様に演算できることは保証していません。一応、英語ユーザー環境で実行してみたら期待どおりの動作を行いました当然のことながら、macOS専用です。10.10以降で動きます(10.10では動作確認していませんけれども)。"警告音「Basso」を最大音量で鳴らす。repeat–句読点など。Naganoyaスクリプトエディタの最前面のドキュメントを解釈して、CocoaのClass名とEnumを抽出してpropertyに展開して、新規書類に展開するAppleScriptです。いわゆる「AppleScriptの内容を解析して書き換える」AppleScriptです。Classのチェックのために、実際にNSClassFromStringでオブジェクトを作れるかどうかチェックしています。Enumについては、ヘッダーファイルを検索してチェックを行っています。そのため、本AppleScriptは実行環境にXcodeがインストールされていないとEnumチェックが行えません。前バージョンではXcodeのアプリケーションバンドル以下に存在しているヘッダーファイルのパスを計算するときにXcodeが起動されていましたが、本バージョンではXcodeが起動しないように修正しました。propertyを展開するときに、プロポーショナルフォントで画面描画した際の幅を実際に計算して、文字の描画幅のピクセル数順にソートしています。本AppleScriptはEnumの確認のために全ヘッダーファイルを走査しているため、この部分で少々処理時間がかかります。ClassとEnumの確認をキャッシュするようにして、二度目以降は同じ文字列の問い合わせを行わないようにしたいところです。me–置換してはいけないリスト。encoding系はenumの桁数が足りなくてpropertyに代入できない。Indexを生成するAppleScriptです。Stream」ツールが提供され、GoogleDriveをデスクトップにマウントできます。Streamを使ってみたところ、デフォルト状態だとSpotlight検索が効きませんでした。そこで、Index生成してみたものの...既存のファイルについてはSpotlight検索できませんでした。Index生成後に、新規追加したファイルについてはSpotlight検索が有効でした。Indexを常時生成するようにすると、CPUに対する負荷が大きくなるため、実際の運用ではSpotlightを無効にして運用するようにしました。「グループドライブ」領域についてはまだテストできていません。既存のファイルについては、mdimportコマンドでインデックス作成すれば大丈夫だと思っていますが、実際に試してみると予想外の挙動を行うのかもしれません。NaganoyaPDFから指定ページ以降を削除するAppleScriptです。こんな(↑)418ページもあるPDFから、おためし版の、冒頭から40ページだけ抽出したPDFを作成する際に使用したものです。sort1DNumListWithOrder–指定PDFのページ数をかぞえる(10.9対応。NaganoyaFinder上で選択中のMarkdown書類を取得し、ファイル名で昇順ソート(A→Z)して、各Markdown書類中のタイトルのうち最もレベルの高い(重要な)ものを抽出し、まとめてテキストにしてクリップボードに転送するAppleScriptです。大量にあるMarkdown書類の本文中から一番重要なタイトルを抽出する作業を......さすがに手作業で行うわけには行かなかったので、AppleScriptを書いて処理してみました。新規に書いた処理はほとんどなく、既存のルーチンの寄せ合わせで構成しています。Finder上でMarkdown書類を選択した状態で本Scriptを実行すると(Markdown書類以外は除外して)、AppleScriptでMarkdown書類を読み込んで(Markdown書類がUTF-8固定なのでUTF-8を指定して読み込み)、正規表現で書類中のタイトルを抽出し、重要なタイトル(#の個数が少ない)をピックアップ。これをすべての書類について行います。処理結果をクリップボードに転送します。最終的には、(手作業で加工して)このようになります。NaganoyaCotEditorでオープン中の最前面の書類中のテキストの、日付フォーマットを変換するAppleScriptです。▲スクリーンショットは作成中のものですBlogのアーカイブ本のオマケとして(記事だけだとウンザリする仕上がりだったので)、冒頭にその年に何があったかをAppleのニュースリリースから抽出して掲載してみたのですが、日付の形式が独特だったので、手で打ち直していました。繰り返して行うと面倒だったので、NSDataDetectorで自然言語テキスト(CotEditorの本文テキスト)から日付を自動検出して書き換えを試みたのですが、NSDataDetectorではこのサンプルのようなほんのちょっとだけ手の加わった日付テキストでは検出してくれませんでした。一応、フォーマット自体は固定だったので、フォーマッターだけ指定すれば日付テキストとして認識し、常識的なYYYY/MM/DDの日付フォーマットに書き換えるようにしてみました。▲日付フォーマット置換したテキスト(処理は一瞬)ただし、日付フォーマットテキストが行で独立しているもの(添付スクリーンショットのように)を処理対象にしているので、あまり汎用性はなさそうです。一般的には正規表現で指定することになるんでしょうけれど、その正規表現というかもともとの日付フォーマットを元のテキストから自動検出してくれることがベストだと思います。CotEditorに依存した処理はひとつもないので、JeditΩでもmiでもテキストエディットでもTextWranglerでもBBEditでも、対象にして処理することはかんたんです。クリップボードの内容に対して処理したほうがいいのかもしれません。