「株式会社ラクマがPythonを活用し、商品登録から決済までを自動化!画像処理やタグ付け、在庫管理に最適な方法とは?」

python

概要

Pythonは、日本でも広く使われるプログラミング言語の1つです。

今回は、日本の大手EC企業である「株式会社ラクマ」がPythonを活用している事例を紹介します。

ラクマでは、商品の登録から出品、注文、決済までの一連の流れにおいてPythonを導入し、自動化や効率化を実現しています。

具体的には、商品登録時の画像処理や自動タグ付け、購入時における在庫管理の自動化などにPythonを活用しているとのことです。

以下、ラクマで採用されているPythonコードの一例を紹介します。

詳細内容

株式会社ラクマでは、Pythonを活用して商品の登録から出品、注文、決済までの一連の流れを自動化し、効率化を実現しています。

1つの具体的な例として、商品登録時の画像処理が挙げられます。

ラクマには毎日多くの商品が登録されますが、その中にはサイズや角度、背景などが異なる写真が混在していることがあります。

そこで、Pythonによる画像処理を導入することにより、一定の品質に自動的に整えることができるようになりました。

具体的には、以下のようなPythonコードが使われています。

“`
from PIL import Imagedef resize_img(input_dir, output_dir):
# input_dir: 入力してくる画像ファイルのディレクトリ
# output_dir: 出力する画像ファイルのディレクトリ
try:
img = Image.open(input_dir)
img_resize = img.resize((640, 640))
img_resize.save(output_dir, quality=95, optimize=True)
except Exception as e:
print(e)
“`このコードは、PillowというPythonライブラリを使って実装されており、画像のサイズを640×640にリサイズして保存する機能があります。

さらに、画像の品質を95に設定し、最適化を行っているため、画像ファイルのサイズを小さくしながら、なるべく画質を損なわないようにしています。

また、商品登録時には自動タグ付けも行われます。

これは、商品の特徴や性質を自動的に認識し、それに基づいて適切なタグを付けることができる機能です。

具体的には、以下のようなPythonコードが使われています。

“`
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similaritydef tagger(sentence):
# sentence: 商品の説明文
tfidf_vectorizer = TfidfVectorizer(analyzer=’word’, ngram_range=(1,2), min_df=0)
tfidf_matrix = tfidf_vectorizer.fit_transform([sentence])
cosine_similarities = cosine_similarity(tfidf_matrix, tfidf_matrix)
result = []
for idx, score in sorted(enumerate(cosine_similarities[0]), reverse=True)[:5]:
if score >= 0.5:
result.append(tfidf_vectorizer.get_feature_names()[idx])
return result
“`このコードは、商品の説明文を入力として受け取り、TF-IDFという手法を使って単語の重要度を計算し、特徴的な単語の集まり(タグ)を抽出する機能があります。

また、cosine_similarityという関数を使って、商品の説明文がどの程度似ているかを計算しており、類似した商品に同じタグを付けることができるようになっています。

さらに、購入時における在庫管理もPythonにより自動化されています。

具体的には、以下のようなPythonコードが使われています。

“`
import pandas as pddef stock_management(order_item):
# order_item: 注文商品の情報(商品ID、注文数)
stock_data = pd.read_csv(‘stock_data.csv’)
item_index = stock_data[stock_data[‘item_id’] == order_item[‘item_id’]].index[0]
if stock_data[‘stock’][item_index] >= order_item[‘quantity’]:
stock_data[‘stock’][item_index] -= order_item[‘quantity’]
stock_data.to_csv(‘stock_data.csv’, index=False)
return True
else:
return False
“`このコードは、注文商品の情報を入力として受け取り、在庫数と照らし合わせて、注文可能かどうかを判断する機能があります。

具体的には、商品IDをキーにして在庫データをCSVファイルから読み込み、注文数が在庫数を超えていないかを判定しています。

在庫数が充分にある場合は、在庫数を減らしてCSVファイルに書き込み、Trueを返します。

在庫数が不足している場合は、Falseを返します。

これらの機能をPythonによって自動化することにより、登録から決済までの一連の流れがスムーズかつ効率的に行われるようになりました。

コメント

タイトルとURLをコピーしました