はじめての調香 · 94
「A to B」で A が B より大きいものを全部拾う:55か所、うち23か所に本物の誤りが隠れていた
· 8 分
前回、評価濃度に1000%と書かれた記録が2件あることに気づいた。濃度が100%を超えることはない。そこから、化学をまったく知らなくてもできる検査の一群を思いついた。欄の形そのものが誤りを暴く。今回は3種類を走らせた。物理的な上限、値域、そして最も使える一つ——区間の順序である。純度、比重、屈折率、沸点、融点の5欄には「A to B」の区間が42,802個あり、そのうち55か所で A が B より大きい。そしてそれは2類に分かれる。32か所は順序が逆なだけ(比が1.15以下、値そのものは正しいが、解析プログラムを壊す)。残る23か所では反転が本物の誤りを暴いており、うち5件は比がちょうど10倍——小数点が1桁ずれている。
読了目安 4 分。
前回の終わりに小さなことを書いた。評価濃度に 1000% と書かれた記録が2件あり、濃度が100%を超えることはない、と。
**あの誤りが摘出しやすいのは、あの欄に物理的な上限があるからだ。**そこで考えた。化学をまったく知らなくてもできる検査は、他に何があるだろう。
今回は3種類を走らせた。
検査1:物理的な上限
assay(純度)欄には27,221件の値があり、純度が100%を超えることはない。
超えているのは1件だけ——酸化亜鉛(#42155、サプライヤー30社)が 800.00 to 100.00 と書いている。
**1件。27,221分の1。**この欄は驚くほど綺麗だ。
検査2:値域
屈折率には4,609件の値がある。液体の屈折率が1を下回ることはなく(それは光が真空中より速く進むことを意味する)、香料材料は実際には1.3から1.6の間に収まる。
1.0〜1.8の外にあるものを拾うと5件出た——うち1件は私の探針のほうが誤っていた。
メチルメルカプタンの屈折率は「1.43000 to 1.43600 @ 5.80 °C」と書かれており何も問題は無い。私の正規表現が温度の5.80を値として拾ってしまったのだ。
これは書き留めておく価値がある。全庫を掃くときは @ 以降を先に落とすこと。材料名の照合の記事でも似た誤りを犯した——探針そのものが偽陽性を生む。拾ったものは1件ずつ目で見て初めて成立する。
検査3:区間の順序(最も使える一つ)
これは欄が何を意味するかをまったく知らなくてよい。
値が「A to B」と書かれているなら、A は B 以下であるべきだ。A が純度でも密度でも温度でも屈折率でも関係ない。
5欄には合計42,802個のこうした区間がある。
| 欄 | 区間数 | A > B | 割合 |
|---|---|---|---|
| assay | 27,221 | 6 | 0.02% |
| specific_gravity | 4,184 | 23 | 0.55% |
| refractive_index | 4,113 | 12 | 0.29% |
| bp | 6,199 | 13 | 0.21% |
| mp | 1,085 | 1 | 0.09% |
| 合計 | 42,802 | 55 | 0.13% |
**55か所、55件の記録。**そして「大きいほうを小さいほうで割る」と、明確に2類に分かれる。
類型1:順序が逆なだけ(32か所)
比が1.15以下、つまり2つの数字自体は妥当で、書く順が逆になっているだけだ。
| サプライヤー | 材料 | 欄 | 値 |
|---|---|---|---|
| 107 | セイヨウネズ果実油 | 比重 | 0.86900 to 0.85900 |
| 50 | クスノキ樹皮油 | 比重 | 0.88500 to 0.87500 |
| 26 | 縮れパセリ葉油 | 比重 | 0.98000 to 0.94000 |
| 19 | 2-チオフェンチオール | 比重 | 1.25000 to 1.23500 |
| 16 | 2,6-ジメチルチオフェノール | 屈折率 | 1.52700 to 1.52100 |
**この類型は人には無害だ。**0.869 to 0.859 を見れば、0.859から0.869のことだと分かる。
だがプログラムは壊れる。「最初の数字を下限とする」と書かれたコードは、セイヨウネズ果実油で上限より大きい下限を得る——しかもあの記録はサプライヤー107社で、マイナーな記録ではない。
類型2:反転が本物の誤りを暴く(23か所)
比が1.15超。そしてこの類型には見分けのつく3つの署名がある。
署名1:小数点が1桁ずれている(比がちょうど約10)。
| サプライヤー | 材料 | 値 | 比 |
|---|---|---|---|
| 31 | ケイ皮酸イソアミル | 0.99200 to 0.09970 | 9.9 |
| 25 | ミュゲアルデヒド | 9.93000 to 1.00100 | 9.9 |
| 3 | 3-(メチルチオ)酪酸メチル | 1.03400 to 0.10400 | 9.9 |
| 2 | ジメチルベンジルカルビニルクロトネート | 0.99500 to 0.10030 | 9.9 |
| 4 | 2-メルカプト-2-メチルプロピオン酸エチル | 0.96100 to 0.10810 | 8.9 |
**5件、すべて比重欄、すべて10倍ずれている。**正しい値は 0.9970、0.9930、1.0400、1.0030、1.0810 のはずだ。
署名2:純度欄でゼロが1つ落ちている。
| サプライヤー | 材料 | 値 |
|---|---|---|
| 7 | アスコルビルリン酸ナトリウム | 95.00 to 10.00 |
| 3 | プルラン | 90.00 to 10.00 |
| 2 | 2-(メチルチオ)プロピオン酸メチル | 95.00 to 10.00 |
**「95.00 to 10.00」はほぼ確実に「95.00 to 100.00」である。**同じ誤りが3度現れる——これは偶然の打ち間違いではなく、同じ転記工程の固定した失敗だ。
(酸化亜鉛の 800.00 to 100.00 は逆方向で、ゼロが1つ多い。80.00 のはずである。)
署名3:沸点欄に別のものが紛れ込んでいる。
| サプライヤー | 材料 | 値 |
|---|---|---|
| 36 | ジンゲロン | 141.00 to 0.50 |
| 5 | 4-メチルサリチルアルデヒド | 760.00 to 223.00 |
ジンゲロンの0.50 はほぼ確実に圧力(0.50 mm Hg)で、区切りの @ が落ちただけだ。4-メチルサリチルアルデヒドの760.00 は標準大気圧のミリメートル水銀柱そのものである——どちらも圧力が温度の位置に入り込んでいる。
そして最大のものはペアエステル(サプライヤー46社)で、屈折率が 1.48000 to 1.14860 と書かれている。1.14860 は液体としては低すぎ、1.4860 なら正しい位置に収まる。1が1つ多い。(この材料は別の記事に書いた。)
この3つの検査に共通すること
どれも、欄が何を語っているかを知らなくてよい。
- 純度は100を超えられない——それが百分率の定義だから
- 屈折率は1を下回れない——それが屈折率の定義だから
- 「A to B」の A は B より大きくなれない——それが「to」の定義だから
どの材料の正しい値も調べず、外部の出典とも照合せずに、55件の問題を見つけた。
そして以前に見つけたアセトフェノンの単位の誤り(3200 ml/kg は換算すると体重の3.3倍)とあの2件の1000%も、同じ種類の推論だった。
自分の原料データ表を作っているなら、この3つを先に走らせてほしい。費用はほぼゼロだ。
この記事が立証していないこと
- **5欄しか掃いていない。**区間を持つ他の欄(引火点、蒸気圧、logP)は走らせていない。
- **「A to B」は正規表現で拾っている。**書き方の違う区間(ハイフン、カンマ)は漏れるので、55は下限である。
- **正しい値はすべて比から推測したものだ。**供給仕様書も化学便覧も参照していない。それらの推測は誤りうる——とくに「95.00 to 10.00 は 100.00 のはず」の3件は、模様が似ていると思っただけだ。
- **類型1と2の境界(比1.15)は私が適当に決めた。**閾値を変えれば分類は変わる。
- **0.13%の誤り率は、このデータベースの誤りが0.13%しかないという意味ではない。**この種の検査は「形が違う」誤りしか見えない。0.85〜0.87 と書かれているが本当は 0.95〜0.97 であるような記録は、まったく照らせない。
- 私の探針自身が偽陽性を出した(
@ 5.80 °Cの温度を屈折率として拾った)ので、自動走査の結果は必ず人が見る必要がある。