OS X 10.5での辞書サービスの実用化

OS Xにバンドルされているディレクトリおよび辞書サービスについてお話したいと思います。ほとんどのポップアップメニューの[辞書でループアップ]項目を使用して、このサービスの存在を確認できます。 目的の単語を選択し、メニューを呼び出してこのアイテムを選択すると、単語の意味、品詞、同義語、その起源の履歴などの情報をすばやく便利に受け取ることができます。 データは、利用可能なすべての辞書(ウィキペディアを含む)から収集され、1ページに表示されます。 辞書の数およびその他のパラメーターは、このサービスの構成プログラムを介して設定されます。 たとえば、私はロシア語のウィキを自分用にセットアップしました。



上級ユーザー向けに、このサービスは一連のインターフェースを提供します。したがって、PythonまたはRubyのこの知識に適用して、ユーザーは、書籍や記事に基づいて著者の語彙を決定したり、アーキズムを検索したり、文を分析したりする場合でも、テキストに対してさまざまな分析的および統計的なことを行うことができます品詞「名詞+ hl +前置詞」。 たとえば、平均して女性は男性よりも動詞を使用し、名詞は男性を使用することがわかります。



このサービスは翻訳者として役立つ英語を知らない。 たとえば、新しい記事や本を読む前に、テキスト内の単語のリストを作成し、繰り返し頻度の順に並べ替え、最も一般的なものの翻訳を見つけるスクリプトを作成できます。 この単語のシートを印刷すると、地下鉄や電車で記事を読むのが面倒になります。 知っている単語である単純な単語を除外するには、単語の語彙セットをリスト、辞書に適用するだけで、簡単に生成できます。 したがって、語彙を絶えず更新し、その成長と進捗を監視できます。



以下は、DictionaryServicesが提供する一連の機能です。



辞書検索:



* DCSGetTermRangeInString

* DCSCopyTextDefinition



結果の表示:



* HIDictionaryWindowShow



DCSCopyTextDefinitionは、各メソッドを個別に分解することはせず、ほとんどのことにのみ注意を払います。



CFStringRef DCSCopyTextDefinition (

DCSDictionaryRef dictionary,

CFStringRef textString,

CFRange range

);








パラメータ:

dictionary-このパラメーターは将来の使用のために予約されているため、NULLとして指定します(すべてのアクティブな辞書で検索が行われます)

textString-辞書で検索する単語またはフレーズを含むテキスト

range -textString内の単語またはフレーズの位置を示す範囲 。 textStringに含まれる単語が1つだけの場合、範囲は[0、length(word)]になります

戻り値 -CFStringRefとして表される実行結果を表します



以下は、Pythonでのこのメソッドの呼び出しを示す小さな例です。



>>> import DictionaryServices

>>> word = "sex"

>>> meaning = DictionaryServices.DCSCopyTextDefinition(None, word, (0,len(word) ))

>>> meaning

u'noun \n1 (chiefly with reference to people) sexual activity, including specifically sexual intercourse \n2 either of the two main categories (male and female) into which humans and most other living things are divided on the basis of their reproductive functions \nverb \n1 determine the sex of \n2 ( sex someone up) arouse or attempt to arouse someone sexually. \n'

>>>








テキスト内の「動詞+前置詞」の組み合わせ、それらのソートと表示を見つける方法を示す別の簡単な例。



#Copyright©2008 __MyCompanyName__。 無断複写・転載を禁じます。

DictionaryServicesをインポートする

再インポート

オペレーターのインポートアイテムゲッターから



ファイル=オープン( 'terry.txt'、 'r')



単語= {}

buf = [なし、なし]

カウンター= -1

verbs_prepos = {}



ファイル内の行の場合:

re.splitの単語( '\ W +'、line.lower()):

カウンター+ = 1



単語が単語に含まれていない場合:

words [word] = [1、DictionaryServices.DCSCopyTextDefinition(None、word、(0、len(word))))]

その他:

単語[word] [0] + = 1



意味=単語[単語] [1]



意味がNoneまたはlen(word)<2または["to"、 "as"、 "about"、 "so"、 "not"、 "for"、 "like"]の単語の場合:

buf [counter%2] =なし

続ける



buf [counter%2] = [単語、意味]



prev_word = buf [(counter-1)%2]



prev_wordがNoneでなく、re.search( "(^副詞)|(^前置詞)"、意味[0:15])およびre.search( "(^過去)|(^動詞)"、prev_word [1] [0:15]):

str = prev_word [0] + "" + word



strがverbs_preposにない場合:

verbs_prepos [str] = 1

その他:

verbs_prepos [str] + = 1



items = verbs_prepos.items()

items.sort(ラムダx、y:cmp(y [1]、x [1]))



アイテム内の単語の場合:

単語[0]、 "-"、単語[1]を出力します



出力:



見上げた-50

考える-40

レットアウト-39

生まれ-39

の考え-39

見て-37

降りる-34

出てきた-20

作る-20

質問-20

上がった-19



私が見つけたように、誰かがこのサービスも役に立つことを願っています。



All Articles