NOEMBLEM/エンブレムが設定されていません。

メールの詳細(トピック表示)

新 ejSplitter-0.3

投稿者: さん  2004/01/08 22:53  MLNo.527   [メール表示]

今野です

新しい (encodeを外した) ejSplitter-0.3 と古いもので試してみました。
ejSplitter と 文字コード変えるたび (合計 4 回) zope をリスタートしてます。

"aiueoあいうえお" とだけ書いた DTML Document があるフォルダで試してみました。
新 ejSplitter は euc-jp では問題が見付かりませんでした。
utf-8 ではエラーが出ました。
(試験方法はシグネチャ以降に添付します)

---+--------+-------+----------+---------+---------+-------+---------+
| \キー| 空白 |あいうえお| あ* |あいう | a* | aiueo |
===*========*=======*==========*=========*=========*=======*=========*
新 | euc-jp | aiueo | aiueo | aiueo |(なし) | aiueo | aiueo |
+--------+-------+----------+---------+---------+-------+---------+
| utf-8 | aiueo |●(err-1) | aiueo |●(err-1)| aiueo |●(err-1)|
---+--------+-------+----------+---------+---------+-------+---------+
旧 | euc-jp | aiueo | aiueo |●(err-2)|●aiueo | aiueo | aiueo |
+--------+-------+----------+---------+---------+-------+---------+
| utf-8 | aiueo | aiueo |●(err-2)|(なし) | aiueo | aiueo |
---+--------+-------+----------+---------+---------+-------+---------+

●(err-1):
Error Type: TypeError
Error Value: decoding Unicode is not supported

●(err-2):
Error Type: UnicodeError
Error Value: ASCII decoding error: ordinal not in range(128)


On Thu, 08 Jan 2004 19:22:24 +0900
Hajime Nakagami <nakagami@…> wrote:

環境は zope-2.6.2, python-2.1.3, Vine2.6r3相当(kernel-2.4.22)です
# スレッド長くなって見辛いかと思い変えました
--
Shu KONNO
http://owa.as.wakwak.ne.jp/zope


∞∞∞∞∞∞∞∞ 試験方法 ∞∞∞∞∞∞∞∞
■ 0. ディレクトリ
/SplitterTestEUC --- management_page_charset を euc-jp に設定
/SplitterTestUTF --- management_page_charset を utf-8 に設定

■ 1.1 フォルダ作成
/SplitterTestEUC/MyCatalog --- ZCatalog インスタンス
/SplitterTestEUC/aiueo --- DTML Document (中身は「aiueoあいうえお」のみ)

■ 1.2 ZCTextIndex Lexicon を作成
/SplitterTestEUC/MyCatalog/lexicon --- ZCTextIndex Lexicon

id: lexicon
title: なし
Case Normalizer: チェック (デフォルト)
Stop Words: Don't remove stop words (デフォルト)
Word Splitter: ejSplitter for Japanese(euc-jp) を選択

■ 1.3 Find Objects を実行
Find objects of type: DTML Document のみを選択
他はデフォルトのまま [Find and Catalog] をクリックすると
Catalog タグに自動で移動して

Object Identifier Type
----------------------------------------
[ ] /SplitterTestEUC/aiueo Unknown

と表示される (zope2.5.3 では type がちゃんと表示されたが...)

■ 1.4 Indexes を実行
ZCTextIndex を選択し [Add] をクリックする

id: PrincipiaSearchSource
Field name: なし
Ranking Strategy: Okapi BM25 Rank (デフォルト)
Lexicon: lexicon (デフォルト)
と指定し、再度 [Add] をクリックする

PrincipiaSearchSource をチェックし [Reindex] をクリックすると
Object のカウントに 2 が立つ。

■ 1.5 Python Script を使い検索する
/SplitterTestEUC/searchCatalog --- Python Script
/SplitterTestEUC/showSimpleResut --- DTML Method

(http://www.freeml.com/message/zope-memo@…/0000525 で投稿したもの)

■ 2.1, 2.2, ... 2.5 euc-jp を utf-8 に替えてテストする

∞∞∞∞∞∞∞∞ おわり ∞∞∞∞∞∞∞∞


 読み込み中...

  • MLNo.528   さん  (0) 2004/01/10 18:56  [メール表示する]
    今野です

    柴田さんに教わった方法で UTF-8 でも検索できるようになりました。
    http://mail.webcore.co.jp/pipermail/coreblog/2004-January/000044.html

    いろいろありがとうございました。
    --
    Shu KONNO
    http://owa.as.wakwak.ne.jp/zope


  • MLNo.529   Hajime Nakagamiさん  (0) 2004/01/10 20:14  [メール表示する]
    中神です。
    なるほど、私の修正ミスですね。

    バージョン番号の上げ方に一貫性がなくなってきましたが、
    ejSplitter-0.3.1.tar.gz として、公開しました。
    http://www005.upp.so-net.ne.jp/nakagami/tips/ZCTextIndex.html#ejSplitter

    これでよろしいでしょうか?---->All

    >今野です
    >
    >柴田さんに教わった方法で UTF-8 でも検索できるようになりました。
    >http://mail.webcore.co.jp/pipermail/coreblog/2004-January/000044.html
    >
    >いろいろありがとうございました。


  • MLNo.531   "kf"さん  (0) 2004/01/13 22:15  [メール表示する]
    こんにちは、深町です。

    > ejSplitter-0.3.1.tar.gz として、公開しました。
    > http://www005.upp.so-net.ne.jp/nakagami/tips/ZCTextIndex.html#
    > ejSplitter
    >
    > これでよろしいでしょうか?---->All

    http://www.atransia.co.jp/home/Purloined に入れてみました。

    ついでに、ejSplitter は 「ポー」の場合「ー」がつながってくれずに「ポ」「ー」
    のように分割
    されてしまうのが気に入らなかったので、(「ページ」などもそうなのですが)
    文脈依存のコードを入れてみました。
    何をしたかというと、全角の「〜」「ー」の場合は、前の文字と同じ文字種別という
    ことで
    扱う ZEN_DEPEND という種別を作り、前の文字が全角ひらがなか、カタカナだった
    ら、
    それにしたがうというものです。同じように半角バージョンを入れてもいいかもしれ
    ません。

    これをやらないでばらけたままだと、よけいなものがマッチしてしまうことがあるの

    気に入らなかったわけです。あとは、切り方としてもなんですし。
    ただ、よけいなものがマッチしても、たくさん検索結果に出てきた方がいいというの
    であれば、入れる必要はないですが(笑)

    ejSplitter は、こうしたヒューリスティックルールをもっと追加していけば、
    理屈上もっと賢くすることができると思います。


    diff -r ejSplitter.orig/SplitJapanese.py ejSplitter/SplitJapanese.py
    39a40,46
    > if new_state == char_map.ZEN_DEPEND:
    > if char_state == char_map.ZEN_KANA \
    > or char_state == char_map.ZEN_HIRA:
    > new_state = char_state
    > else:
    > new_state = char_map.DELM
    >
    48a56
    >
    diff -r ejSplitter.orig/char_map.py ejSplitter/char_map.py
    35a36
    > ZEN_DEPEND = 6 # context dependent zenkaku character
    74a76,78
    > #ZEN_DEPEND
    > depend_codes = [0xFF5E, 0x30FC]
    >
    108a113,117
    > #ZEN_DEPEND
    > for chcode in depend_codes:
    > char_class[chcode] = ZEN_DEPEND
    >
    >

    --
    Kazuya Fukamachi
    http://www.atransia.co.jp/home/ZenKai/
    日記 http://www.atransia.co.jp/home/fukamachi
    COREBlog使用中 http://www.atransia.co.jp/home/Purloined




  • MLNo.532   Hajime Nakagamiさん  (0) 2004/01/14 06:26  [メール表示する]
    ありがとうございます。

    内部的な CVSリポジトリには、反映しておきました。
    (深町さんがつけてくれたパッチの*まま*で、半角云々はやってませんが)

    私は、専門外ですが、こういうことを専門で学んだり、仕事をしたり
    #と、いうひとがそんなにたくさんいるのかどうか知りませんが
    した人には、常識的なロジックというのが、まだまだいくつもありそうですね。
    (中点/中黒 とか、句読点の扱いに、もっと工夫の余地がありそうな予感)

    ejSplitter をベースに、

    (辞書を使わない)もっとおりこうなSplitter をどっかの
    学生が書いてくれないかなぁとか、
    (この程度じゃ、卒論のテーマにはならんのですかねぇ)

    韓国語とか、中国語とかに対応してくれないかなぁ
    (これは、その言葉を読み書きできれば簡単にできそう)

    とは思ってはいるのですが、いまのところ、ejSplitter のわかち書きの
    ロジック部分のコードを読んでいるのは、深町さんだけでしょうね

    以上
    >こんにちは、深町です。
    >
    >> ejSplitter-0.3.1.tar.gz として、公開しました。
    >> http://www005.upp.so-net.ne.jp/nakagami/tips/ZCTextIndex.html#
    >> ejSplitter
    >>
    >> これでよろしいでしょうか?---->All
    >
    >http://www.atransia.co.jp/home/Purloined に入れてみました。
    >
    >ついでに、ejSplitter は 「ポー」の場合「ー」がつながってくれずに「ポ」「ー」
    >のように分割
    >されてしまうのが気に入らなかったので、(「ページ」などもそうなのですが)
    >文脈依存のコードを入れてみました。
    >何をしたかというと、全角の「〜」「ー」の場合は、前の文字と同じ文字種別という
    >ことで
    >扱う ZEN_DEPEND という種別を作り、前の文字が全角ひらがなか、カタカナだった
    >ら、
    >それにしたがうというものです。同じように半角バージョンを入れてもいいかもしれ
    >ません。
    >
    >これをやらないでばらけたままだと、よけいなものがマッチしてしまうことがあるの
    >が
    >気に入らなかったわけです。あとは、切り方としてもなんですし。
    >ただ、よけいなものがマッチしても、たくさん検索結果に出てきた方がいいというの
    >であれば、入れる必要はないですが(笑)
    >
    >ejSplitter は、こうしたヒューリスティックルールをもっと追加していけば、
    >理屈上もっと賢くすることができると思います。


  • MLNo.534   Hajime Nakagamiさん  (0) 2004/01/15 04:45  [メール表示する]
    中神です。

    別に、隠しておく意図はないので、ejSplitter-0.4.tar.gz を公開します
    http://www005.upp.so-net.ne.jp/nakagami/tips/ZCTextIndex.html#ejSplitter
    (手動パッチ、未テストですが)

    >ありがとうございます。
    >
    >内部的な CVSリポジトリには、反映しておきました。
    >(深町さんがつけてくれたパッチの*まま*で、半角云々はやってませんが)

    以上


  • MLNo.535   Kiyoharu Uenoさん  (0) 2004/01/15 10:03  [メール表示する]
    上野です。

    > 中神です。
    >
    > 別に、隠しておく意図はないので、ejSplitter-0.4.tar.gz を公開します
    > (手動パッチ、未テストですが)

    ejSplitter-0.4.tar.gz を入れてみました。

    SplitJapanese.py の40行目
    if new_state == char_map.ZEN_DEPEND:
    でエラーがでてました。

    内容は理解できていませんのでこれで良いか解りませんが
    字下げがあってないようでした。



  • MLNo.536   Hajime Nakagamiさん  (0) 2004/01/15 19:55  [メール表示する]
    中神です。

    失礼をばいたしました。
    ejSplitter-0.4.tar.gz を置き換えておきました。
    確認してみて下さい。

    以上
    >上野です。
    >
    >> 中神です。
    >>
    >> 別に、隠しておく意図はないので、ejSplitter-0.4.tar.gz を公開します
    >> (手動パッチ、未テストですが)
    >
    >ejSplitter-0.4.tar.gz を入れてみました。
    >
    >SplitJapanese.py の40行目
    >if new_state == char_map.ZEN_DEPEND:
    >でエラーがでてました。
    >
    >内容は理解できていませんのでこれで良いか解りませんが
    >字下げがあってないようでした。





メールへの返信はMLのメンバーしかできません。
【PR】携帯でも使える掲示板デコメで日記最新のブログデコメでブログ人気の日記

更新順メールリスト

4LDK超ってこんなに広い?/SUUMO