关于 nlp-supply-chain
nlp-supply-chain 是面向供应链场景的 NLP 技能,帮助分析非结构化文本、处理业务文档和分类产品。内容涵盖 BERT 分类、发票实体识别、供应商风险情绪分析及查询聊天机器人。
主要功能
- 01采购订单、发票和合同处理
- 02基于 BERT 的产品分类
- 03发票命名实体识别
- 04供应商风险情绪分析
- 05供应链查询聊天机器人
适用场景
- 01从发票中提取实体信息
- 02按文本描述归类产品
- 03分析新闻和报告中的供应商风险
- 04回答内部供应链查询
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ kishorkukreja/ awesome-supply-chain --skill nlp-supply-chain安装后在 Claude Code 中输入/nlp-supply-chain确认已加载。
详细介绍
供应链自然语言处理
你是将 NLP 应用于供应链问题的专家。你的目标是从非结构化文本中提取见解、自动处理文档、分析供应商通信,并使用现代 NLP 技术对产品进行分类。
应用场景
- 文档处理:采购订单、发票、合同
- 产品分类:根据描述对商品进行分类
- 供应商风险分析:分析新闻、报告和情感
- 需求感知:社交媒体、评价、趋势
- 聊天机器人:客户服务、内部查询
使用 BERT 进行产品分类
from transformers import BertTokenizer, BertForSequenceClassification
import torch
class ProductClassifier:
"""
Classify products from text descriptions using BERT
"""
def __init__(self, num_classes):
self.tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
self.model = BertForSequenceClassification.from_pretrained(
'bert-base-uncased',
num_labels=num_classes
)
def classify(self, product_description):
"""Classify product from description"""
# Tokenize
inputs = self.tokenizer(
product_description,
return_tensors='pt',
truncation=True,
padding=True,
max_length=128
)
# Predict
with torch.no_grad():
outputs = self.model(**inputs)
logits = outputs.logits
predicted_class = torch.argmax(logits, dim=1).item()
return predicted_class
发票命名实体识别(NER)
from transformers import pipeline
class InvoiceExtractor:
"""
Extract entities from invoices using NER
"""
def __init__(self):
self.ner = pipeline("ner", model="dbmdz/bert-large-cased-finetuned-conll03-english")
def extract_entities(self, invoice_text):
"""Extract company names, dates, amounts"""
entities = self.ner(invoice_text)
extracted = {
'companies': [],
'dates': [],
'amounts': []
}
for ent in entities:
if ent['entity'].startswith('B-ORG') or ent['entity'].startswith('I-ORG'):
extracted['companies'].append(ent['word'])
elif ent['entity'].startswith('B-DATE'):
extracted['dates'].append(ent['word'])
return extracted
供应商风险情感分析
from transformers import pipeline
class SupplierRiskAnalyzer:
"""
Analyze supplier risk from news and reports
"""
def __init__(self):
self.sentiment_analyzer = pipeline("sentiment-analysis")
def analyze_news(self, articles):
"""Analyze sentiment of news about supplier"""
sentiments = []
for article in articles:
result = self.sentiment_analyzer(article['text'])[0]
sentiments.append({
'article': article['title'],
'sentiment': result['label'],
'score': result['score']
})
# Aggregate risk
negative_count = sum(1 for s in sentiments if s['sentiment'] == 'NEGATIVE')
risk_score = negative_count / len(sentiments)
return {
'risk_score': risk_score,
'sentiments': sentiments
}
供应链查询聊天机器人
from transformers import AutoModelForCausalLM, AutoTokenizer
class SupplyChainChatbot:
"""
Chatbot for internal supply chain queries
"""
def __init__(self):
self.tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium")
self.model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-medium")
def respond(self, user_input, chat_history):
"""Generate response to user query"""
# Encode input
new_input_ids = self.tokenizer.encode(
user_input + self.tokenizer.eos_token,
return_tensors='pt'
)
# Generate response
chat_history_ids = torch.cat([chat_history, new_input_ids], dim=-1) if chat_history is not None else new_input_ids
response_ids = self.model.generate(
chat_history_ids,
max_length=1000,
pad_token_id=self.tokenizer.eos_token_id
)
response = self.tokenizer.decode(
response_ids[:, chat_history_ids.shape[-1]:][0],
skip_special_tokens=True
)
return response, response_ids
工具与库
transformers (Hugging Face):BERT、GPT、T5spaCy:工业级 NLPNLTK:文本处理Gensim:主题建模OpenAI API:GPT-4 集成
相关技能
- ml-supply-chain:通用机器学习
- **supplier-risk-management`:风险分析
- demand-forecasting:从文本中感知需求
评论
支持 Markdown