Openlibrary: 壊れたUnicodeで本のタイトルを修正する

作成日 2012年01月23日  ·  16コメント  ·  ソース: internetarchive/openlibrary

この問題は、ol-techメーリングリストで報告されています。

I don't know how widespread this problem is, but I noticed that these
two records have messed up book titles, but if you click through to
the associated MARC records on IA, the titles get rendered correctly.

http://openlibrary.org/books/OL7155555M/The_M%C2%A9%C3%98alavik%C2%A9%C3%98agnimitra
http://openlibrary.org/books/OL7165183M/The_Vikramorva%C2%A9%C3%98s%C2%A9%C4%90iyam
Data @hornc Import 2 Identifiers MARC records Bug

全てのコメント16件

これらのレコードは両方ともarchive.orgからのものです。

archive.orgの_marc.xmlファイルを見てきました。 両方のmarc.xmlファイルの最終変更時刻は2007年であり、これらのレコードは2008年に作成されました。問題は、これらのタイトルを解析したスクリプトにあるようです。

アクセント付き文字がマングルされたり、正しく処理されなかったりしたMARCインポートレコードは数千あります。 もう1つの一般的なシナリオは、アクセントまたは他の発音区別符号が母音の前後のスペースに置き換えられていることです。

たとえば、次を参照してください。

http://openlibrary.org/authors/OL4459814A/Heinrich_Schro_der

http://openlibrary.org/works/OL10684450W/Tonbandgera_te-Messpraxis

http://openlibrary.org/show-records/talis_openlibrary_contribution/talis-openlibrary-contribution.mrc:299045317:529

著者とタイトルの両方で、ウムラウトは母音の後のスペースに変更されました。 リンクされたMARCレコードがブラウザに正しく表示されます。

再インポートを検討する必要がありますか? また、依存関係であるhttps://bugs.launchpad.net/openlibrary/+bug/598204も参照している#149ですか?

私が最近見つけたもの: https
https://openlibrary.org/works/OL17677126W
この著者による複数の作品:
https://openlibrary.org/authors/OL2450531A/Matthieu_Joseph_Bonaventure_Orfila

https://openlibrary.org/search?q=title%3A+%22©♭%22&mode=everythingそれでも1700万をはるかに超える一致が見つかります。 これは「é」の場合で、おそらく最も一般的なアクセント付き文字です。 https://openlibrary.org/books/OL26303038M/Anatomie_générale_appliquée_à_la_physiologie_et_à_la_médecine?b=3&a=1&_compare=Compare&m=diffのような編集は必ずしも手動である必要はありません。

@hornc reあなたの5月8日のコメント、それらの作品はインポートから作成されたエディションから作成されました
https://openlibrary.org/show-records/ia:b28044277_0001

https://openlibrary.org/show-records/ia:b2202010x
それらがiaMARCレコードで修正されるまで、インポートによって正規化が通過しない限り、再インポートする価値はありません。

@LeadSongDog興味深いことに、リンク先のMARCディスプレイには文字が文字化けして表示されますが、クリックしてXML表現https://ia800202.us.archive.org/34/items/b28044277_0001/b28044277_0001_marc.xmlにアクセントを付けたeのディスプレイを正しく表示します。 。 エンコードタイプが正しく設定されていないという問題がある可能性がありますか? これについてはすぐに説明します。新しいopenlibrary-clientは、バルクデータの修正に使用できる状態になっています。

@LeadSongDogこの例では、
https://ia600208.us.archive.org/25/items/b2202010x/b2202010x_marc.xml

「Secoursàdonner」のa-graveはutf-8エンコーディングで正しく表示されます

a-graveはU + 00E0で、バイナリ(pythonic表記)では\xC3\xA0

これらのバイトがMARC8として解釈され、「変換」された場合、 C3が著作権記号になり、「A0」がスペースになります。これは、「Secours©donner」のOLページに表示されるものとまったく同じです。

これらのMARCレコードにはutf-8文字エンコードがあると思いますが、MARC8であるかのようにOLにインポートされたため、マングリングが説明されています。

ここにあるテーブルから手動でMARC8変換を行いましたhttps://memory.loc.gov/diglib/codetables/45.htmlこれを適切にテストするには、yazなどを使用する必要がありますが、これは適切なパスを提供しますプログラムでMARCエラーを修正します。

Amazonのインポートされたレコードに影響を与える他のUnicodeマングリングエラーがあることは知っていますが、それはWindowsまたはISO文字セットからの誤った変換によるものだと思います

コメント@LeadSongDogに感謝します

@hornc MARCマングリングに関する更新、および/またはこの問題を解決したかどうか。

この問題は完全には解決されていません。 インポートスクリプトが修正されたら、 @ bfallingによる再インポートの提案が必要になる可能性があります。

トリアージの観点からは、実際のカウントを取得することはおそらく有用でしょう。 「数千」は、2500万版のそれほど大きな割合ではありません。

これはPython3の変更で解決されましたか、それとも誰かがPython 3で再現する手順を提供できますか?

さてhttps://openlibrary.org/books/OL12903648M/Etudes_Conomiques_De_L'Ocdeは確かに修正されていませんが、おそらく私たちは穴を掘り終えました...
少なくとも3つの問題クラスがありました。

  1. 良いデータの悪いインポート
  2. 不良データのリテラルインポート
  3. 修正されてからの1または2の古いケースからの不良データ。
    py3への移行は、せいぜい1番を修正します。

問題クラス1を再現する手順は?

以前の例は、安っぽいAmazonデータからのインポートである最新の例よりも優れています(インポートすべきではありません)。
https://openlibrary.org/books/OL7165183M/The_Vikramorva%C2%A9%C3%98s%C2%A9%C4%90iyam
https://openlibrary.org/authors/OL4459814A/Heinrich_Schro_der
https://openlibrary.org/books/OL13956174M/Tonbandgera_te-Messpraxis
https://openlibrary.org/books/OL26280693M/Secours_%C2%A9_donner_aux_personnes_empoisonn%C2%A9%E2%99%ADes_ou_asphyxi%C2%A9%E2%99%ADes_suivis_des_moyens_propres_%C2%A9_reconna%C

バグが修正されている場合は、レコードを再インポートすると正しいエンコーディングになるはずです。 次に、タスクは単に何百万もの破損したレコードを再インポートするようになります。

以前に1700万件以上のレコードを返すと主張された検索: https ://openlibrary.org/search?q = title%3A +%22%C2%A9%E2%99%AD%22
現在は2,340万件の結果が返されますが、これは実際には別のバグであり、データベース内のすべての作品が返されるだけだと思います。

@tfmorris https://openlibrary.org/search?q=title%3A+%22+%22&mode=すべてが同じ結果を得るので、そうです、それは事実上空白の文字列のタイトル検索の単純なケースのようです。

検索バグ用に#4223を作成しました。

このページは役に立ちましたか?
0 / 5 - 0 評価