Python 类别检测

Python 类别检测,python,glove,Python,Glove,我使用此代码进行类别检测 import numpy as np # Words -> category categories = {word: key for key, words in data.items() for word in words} # Load the whole embedding matrix embeddings_index = {} with open('glove.6B.100d.txt', encoding="utf8") as f: for lin

我使用此代码进行类别检测

import numpy as np

# Words -> category
categories = {word: key for key, words in data.items() for word in words}

# Load the whole embedding matrix
embeddings_index = {}
with open('glove.6B.100d.txt', encoding="utf8") as f:
  for line in f:
    values = line.split()
    word = values[0]
    embed = np.array(values[1:], dtype=np.float32)
    embeddings_index[word] = embed
print('Loaded %s word vectors.' % len(embeddings_index))
# Embeddings for available words
data_embeddings = {key: value for key, value in embeddings_index.items() if key in categories.keys()}

# Processing the query
def process(query):
  query_embed = embeddings_index[query]
  scores = {}
  for word, embed in data_embeddings.items():
    category = categories[word]
    dist = query_embed.dot(embed)
    dist /= len(data[category])
    scores[category] = scores.get(category, 0) + dist
  return scores


# Testing
print(process('pizza'))
输出 有没有办法让我只获得像食物这样的最高准确度的类别

def process(query):
  query_embed = embeddings_index[query]
  scores = {}
  for word, embed in data_embeddings.items():
    category = categories[word]
    dist = query_embed.dot(embed)
    dist /= len(data[category])
    scores[category] = scores.get(category, 0) + dist
  return max(scores, key=scores.get)
您可以为此使用
max()
。这将返回最大值的键名

您可以为此使用
max()
。这将返回最大值的键名

def process(query):
  query_embed = embeddings_index[query]
  scores = {}
  for word, embed in data_embeddings.items():
    category = categories[word]
    dist = query_embed.dot(embed)
    dist /= len(data[category])
    scores[category] = scores.get(category, 0) + dist
  return max(scores, key=scores.get)