このようなデータを持つデータフィードを分析しています
RAM 4 GB DDR3
RAM 16GB DIMM
memory 4GB DDR3 MHz // no value for MHz
memory 4GB DDR3 1333 MHz // no the order of MHz is not fixed
ram 6GB, 1333 MHz, DDR3 // comma used as delimiter
Processor Intel Core i7-3612QM
Processor Intel Core i7 2630QM
processor i3-380,2.53 GHz //380 used for model number instead of 380M and model number separated by '-' and clock speed separated by ','
Processor Core i3-380 2.53 GHz
Processor Intel Ci3 - 2330 (2nd Gen), 2.53 GHz // multiple symbols used as delimiters(',','-')
Hard drive 500GB 5400RPM
Hard Disk Drive 1.5 TB
Hard Disk 256 GB
ここで、各仕様の意味を分析する必要がram 6GB, 1333 MHz, DDR3
あります。6GBが容量、1333 MHzが周波数、DDR3がRAMのタイプであることを理解する必要があります。しかし、ご覧のとおり、これらは非常に不規則です(一部のエントリには一部のフィールドがあり、他のフィールドがない場合があり、空白が区切り文字として使用される場合もあります。場合によっては,
s、場合によっては-
s)。私の最初の反応は正規表現を使用することでしたが、すぐにそれが愚かであることに気づきました。それから私split
はセパレーター(,
上記の場合)でできると思いましたが、セパレーターでさえ固定されていません。また、このアプローチは、このようなエントリには役に立ちませんmemory 4 GB 1333 MHz DDR3
。このエントリの区切り文字として空白を使用すると、異なるように見えます4
GB
1333
MHz
が、実際4 GB
には1333 MHz
異なっています。また、プログラムでそれを決定しIntel Core i3
、Intel Core i3を暗示する方法はありますか?私はそれを一度図書館に伝えなければならないことを理解しています、そして同じことを意味します。しかし、後でテキストを分析すると、理解できるはずです。上記のエントリのリストは、エントリがどのように可変であるかを示しています。これらのタスクを処理するのに役立つPythonライブラリ(または他の言語)はありますか?Core i3
i3-380
Ci3
Intel Core i3
Core i3
Ci3