デヌタマむニング。 薬局での商品の泚文の最適化薬局

小さな薬局では、絶え間ない垂堎の倉動に敏感な医薬品や準医薬品の柔軟な泚文システムが必芁です。 珟代の珟実の枠組みでは、単䞀の薬局ポむントには十分な保管斜蚭材料宀がないため、マヌクを残し、泚文の責任者に耇数のサプラむダヌの統合䟡栌リストから毎日それらを䜜成させ、重耇を避け、最小䟡栌で、保存期間が䞍適切な補品。 さらに、呜名法は数䞇単䜍です。



私たちは、日垞の操䜜がコンピュヌタヌによっお実行される珟代の䞖界に䜏んでいたす。 したがっお、あなたは蚀うこずができたす「コンピュヌタヌを䜿おう、そしお圌は私たちのためにすべおの汚い仕事をしたす 「さたざたな医薬品の販売統蚈を含むデヌタベヌスはありたすか」-あなたは続けたす、「これらの統蚈を䜿甚しお販売を予枬し、必芁な医薬品の自動アプリケヌションを䜜成しおみたせんか」



はい、最初の近䌌倀たでは正しいでしょう。 そのような゜リュヌションは、ロシアの薬局を自動化する゜フトりェアシステムにありたす。 しかし、非垞に倧きな「BUT」が1぀ありたす。 これらの゜リュヌションはすべお、補品グルヌプを䜜成するたで正しく動䜜したせん。



私は説明したす薬がありたす「Donormil 15mg Tab。 X30「Upsa Laboratoir France補」およびDonormil Tab。 15 mg No. 30 Aventis / Bristol-Myers Squibb-フランス。 デヌタベヌスでは、これらは異なる識別子ず異なる名前を持぀2぀の完党に異なる薬物ですが、これはたったく同じです。 これら2぀の異なる補品の統蚈を考慮するず、間違った結果が埗られたす。



動きず商品を泚文する必芁性に関する信頌できる情報を取埗するには、同䞀商品のグルヌプを䜜成する必芁がありたす。 原則ずしお、グルヌプを手動で䜜成し、倚数のレコヌドを凊理する必芁がありたす。 「補品グルヌプ」ディレクトリの蚘入に長時間取り組むこずができる熱心な埓業員がいる堎合、これは倚かれ少なかれ珟実的ですただし、新しい補品が到着するず、ディレクトリを垞に曎新する必芁があるこずに留意しおください。 通垞2〜3人がカりンタヌの埌ろで働く小さな薬局では、これは単に䞍可胜です。



「同じ薬を芋぀けるこずができるアルゎリズムは䜕ですか」ずいう疑問が生じたす。 最初に頭に浮かぶのは、レヌベンシュタむン距離の蚈算です。 しかし、ここでは、このアルゎリズムの制限に盎面しおいたす-異なる補品Linexキャップのレヌベンシュタむン距離。 x16 "and" Linexキャップ。 x32 "距離は2、同じ補品よりも少ない" Linexキャップ。 x16 "and" Linex N16 caps "距離は9です。 問題は、サプラむダヌが単語を亀換したり、番号の短瞮圢誰かがNo.、誰かN、誰かXを曞いたり、ボリュヌムなどを眮き換えるこずができるこずです。 同䞀の補品をバヌコヌドず組み合わせるこずはできたせん。 異なる工堎で補造された同じ薬には、異なるバヌコヌドがありたす。 さらに、ある工堎で生産された同じ薬剀は、再登録埌に異なるバヌコヌドを持぀堎合がありたす。



長い怜玢の埌、同じ薬を芋぀けるために次のアルゎリズムに行きたした。



1.最初の近䌌「類䌌」薬の怜玢には、N-Gramアルゎリズムが䜿甚されたす。 このアルゎリズムは、指定された長さたでのサブストリングの可胜なすべおの組み合わせを構成し、それらの䞀臎を蚈算したす。 マッチの数をオプションの数で割った倀は、固定Nのラむン類䌌床の係数で宣蚀され倀3を遞択、関数の結果ずしお䞎えられたす。



たずえば、LinexキャップN16およびLinex N16キャップの堎合、線は3グラムに分割されたす。



郚分文字列を比范 2行目のサブストリング 䞀臎 䞀臎の数 オプションの数 類䌌係数
ing Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
いや Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
いく぀かの Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
元 Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
譊官 Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい 11 13
から Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps いや
か Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
キャップ Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
aps Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
PS Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps いや
N Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
N1 Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
N16 Lin、no、nek、ex、ks、s N、N1、N16.16、6 k、ka、cap、aps はい
11 + 12/13 + 13= 0.88
ing Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
いや Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
いく぀かの Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
eks Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
譊官 Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
N Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
N1 Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい 12 13
N16 Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
16 Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
6〜 Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 いや
か Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
キャップ Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい
aps Lin、いいえ、nek、ex、ks、sk、ka、cap、aps、ps、s N、N1、N16 はい




結果は0.88です。



したがっお、キヌワヌドが逆になっおいる薬を組み合わせたす。 ただし、このアルゎリズムには2぀の欠点がありたす。

aアルゎリズムは、薬物ず「x10」および「x20」、「g。」および「mg。」などを組み合わせたす。

bデヌタベヌスの負荷が劇的に増加したす-文法蟞曞は非垞に倧きくなりたす。 たずえば、玄3䞇レコヌドの圚庫の参考曞の堎合、3グラムの蟞曞には90䞇レコヌドが含たれたす。 47000゚ントリの䟡栌衚耇数のサプラむダからの合蚈䟡栌の堎合、蟞曞にはすでに170䞇゚ントリが含たれおいたす。



2.「商品のグルヌプ」ガむドの最埌の蚘入のためにその埌、人の仕事が必芁です、材料䟡倀の最初の参考曞は単語の蟞曞に分割されたす。 薬物の「キヌ」プロパティのメタディレクトリが䜜成されたす。

aボリュヌム;

b数量;

c掻性物質の量;

g原薬;

e色、味;

など



メタ参照ブックには、同矩語、察応䟋g = 1000 mg、および蟞曞内のプロパティの怜玢方法に関するデヌタが含たれおいたす。 「類䌌」補品最初のアルゎリズムの結果から「キヌ」特性が異なる薬物を陀倖するず、ガむド「補品グルヌプ」が埗られたす。



指定されたアルゎリズムにより、ナヌザヌがさらに線集するディレクトリ「補品グルヌプ」に自動的に入力するこずができたす。



私が解決しなければならなかった次の質問は、「どの予枬アルゎリズム」を䜿甚すべきかずいう質問でした。 耇雑でリ゜ヌスを倧量に消費するアルゎリズムを䜿甚したくなかったため、薬局は最初の1幎だけしか機胜しないため季節性はありたせん、Double Exponential Smoothingアルゎリズムを遞択したした。



数匏は次のようになりたす。









どこで そしお 範囲[0; 1]から倀を取埗したす

yは実際の販売数です。









次の倀を予枬するには、匏が䜿甚されたす。



耇数の倀を予枬するには





ご芧のずおり、予枬を蚈算するには、2぀の倉数の倀を知る必芁がありたす- そしお 。 最適倀 そしお は、二次予枬誀差の最小倀実際に販売された商品の量ず予枬の差の二乗の合蚈から遞択されたす。 したがっお、線圢制玄を持぀いく぀かの倉数の関数の最小倀を芋぀けるずいう叀兞的な問題に盎面しおいたす。



孊校で、私がちょうどフォヌトラムを勉匷しおいたずき、お父さんはJ. Forsythの本、Machine Methods of Mathematical Computingを買いたした。 「機械むプシロン」の抂念である浮動小数点蚈算に初めお觊れたずきの驚きを芚えおいたす。 この本を思い​​出しお、私はその䞭に最小倀を芋぀けるためのアルゎリズムを芋぀けたしたが、それは1぀の倉数の関数のためだけです。 いく぀かの倉数の機胜に぀いお、著者は読者にアルゎンの囜立研究所からの未完成1977幎、本執筆時点のMINPACKパッケヌゞを玹介したした。 Fortranで曞かれたこのパッケヌゞを芋぀け、MINPACK C / C ++パッケヌゞを芋぀け、FortranからCぞの「転送」の䜜者ず話をしたずきの驚きを想像しおください。



これたで、医薬品販売の予枬のために、私は以䞋で構成される゜フトりェアパッケヌゞを実装したした。

aC ++で蚘述され、予枬蚈算を実装する拡匵ストアドプロシヌゞャの圢匏で実装されたMS SQLサヌバヌdllのラむブラリ。

b蟞曞ディレクトリ、メタデヌタ、およびストアドプロシヌゞャを含むMS SQLサヌバヌのデヌタベヌス予枬蚈算、圚庫品目ず䟡栌衚などの比范。

cナヌザヌが予枬を行うクラむアントは、ディレクトリず䟡栌衚で動䜜したす。



゜フトりェアパッケヌゞの実装により、商品の泚文䜜業が加速され、薬局の効率が向䞊したした。 そしおさらに重芁なこず-圌は劻を家族に返したした



私が実装した゜フトりェアパッケヌゞは、ロシアの薬局ビゞネスを自動化する1぀のベンダヌず密接に結び぀いおいたす。 アプロヌチの普遍性を䜿甚しお、他の゜フトりェア補品に同様の゜リュヌションを実装できたす。 指定されたアルゎリズムは、薬局ビゞネスだけでなく、同じ皮類の補品が広範囲に存圚する他のすべおにも適甚でき、激しい競争ず絶え間ない垂堎の倉化に盎面しお圚庫ガむドず販売予枬を組み合わせる必芁がありたす。



All Articles