第N1周:one-hot編碼案例

  • ???????🍨 本文為🔗365天深度學習訓練營中的學習記錄博客
  • ? ? ? ?🍖 原作者:K同學啊

一、one-hot編碼概念

自然語言處理(NLP)中的文本數字化:文字對于計算機來說就僅僅只是一個個符號,計算機無法理解其中含義,更無法處理。因此,NLP第一步就是將文本數字化。

文本數字化方法:NLP中最早期的文本數字化方法,就是將文本轉換為字典序列。如:“阿”是新華字典中第1個單詞所以它的字典序列就是1。

?one-hot編碼(獨熱編碼):將每個類別映射到一個向量,其中只有一個元素的值為1,其余元素的值為0。這樣,每個類別之間就是相互獨立的,不存在順序或距離關系。例如,對于三個類別的情況,可以使用如下的one-hot編碼:

  • 類別1:[1,0,0]
  • 類別2:[0,1,0]
  • 類別3:[0,0,1]

舉例:

  • John likes to watch movies.? Mary likes too.
  • John also likes to watch football games.

以上兩句構成一個詞典:

{"John": 1, "likes": 2, "to": 3, "watch": 4,"movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9"too": 10}

one-hot可表示為:

John:[1,0,0,0,0,0,0,0,0,0]

likes:[0,1,0,0,0,0,0,0,0,0]
............等等,以此類推。

1.one-hot編碼的優點:

解決了分類器不好處理離散數據的問題,能夠處理非連續型數值特征。

2.one-hot編碼的缺點:
  • 在文本表征表示上有些缺點非常突出,首先one-hot 編碼是一個詞袋模型,是不考慮詞和詞之間的順序問題,它是假設詞和詞之間是相互獨立的,但是在大部分情況下詞和詞之間是相互影響的。
  • one-hot編碼得到的特征是離散稀疏的,每個單詞的one-hot編碼維度是整個詞匯表的大小,維度非常巨大,編碼稀疏,會使得計算代價變大。

二、英文案例

import torch
import torch.nn.functional as F#示例文本
texts = ['Hello, how are you?','I am doing well, thank you!','Goodbye.']# 構建詞匯表
word_index={}
index_word={}
for i,word in enumerate(set(" ".join(texts).split())):word_index[word]=iindex_word[i]= word#將文本轉化為整數序列
sequences = [[word_index[word] for word in text.split()] for text in texts]#獲取詞匯表大小
vocab_size =len(word_index)#將整數序列轉化為one-hot編碼
one_hot_results = torch.zeros(len(texts),vocab_size)
for i,seq in enumerate(sequences):one_hot_results[i, seq] = 1#打印結果
print("詞匯表:")
print(word_index)
print("\n文本:")
print(texts)
print("\n文本序列:")
print(sequences)
print("\none-Hot編碼:")
print(one_hot_results)

詞匯表:
{'are': 0, 'thank': 1, 'am': 2, 'you!': 3, 'you?': 4, 'Hello,': 5, 'doing': 6, 'Goodbye.': 7, 'well,': 8, 'I': 9, 'how': 10}

文本:
['Hello, how are you?', 'I am doing well, thank you!', 'Goodbye.']

文本序列:
[[5, 10, 0, 4], [9, 2, 6, 8, 1, 3], [7]]

one-Hot編碼:
tensor([[1., 0., 0., 0., 1., 1., 0., 0., 0., 0., 1.],
??????? [0., 1., 1., 1., 0., 0., 1., 0., 1., 1., 0.],
??????? [0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.]])

三、中文案例

1.以字為基本單位
import torch
import torch.nn.functional as F#示例中文文本
texts =['你好,最近怎么樣?', '我過得很好,謝謝!', 'K同學啊']#構建詞匯表
word_index={}
index_word ={}
for i,word in enumerate(set("".join(texts))):word_index[word]=iindex_word[i]= word#將文本轉化為整數序列
sequences =[[word_index[word] for word in text] for text in texts]#獲取詞匯表大小
vocab_size = len(word_index)#將整數序列轉化為one-hot編碼
one_hot_results =torch.zeros(len(texts),vocab_size)
for i,seq in enumerate(sequences):one_hot_results[i,seq]=1#打印結果
print("詞匯表:")
print(word_index)
print("\n文本:")
print(texts)
print("\n文本序列:")
print(sequences)
print("\none-Hot編碼:")
print(one_hot_results)

詞匯表:
{'?': 0, '同': 1, '樣': 2, '得': 3, '你': 4, '啊': 5, ',': 6, '好': 7, '很': 8, 'K': 9, '我': 10, '近': 11, '學': 12, '謝': 13, '怎': 14, '最': 15, '么': 16, '過': 17, '!': 18}

文本:
['你好,最近怎么樣?', '我過得很好,謝謝!', 'K同學啊']

文本序列:
[[4, 7, 6, 15, 11, 14, 16, 2, 0], [10, 17, 3, 8, 7, 6, 13, 13, 18], [9, 1, 12, 5]]

one-Hot編碼:
tensor([[1., 0., 1., 0., 1., 0., 1., 1., 0., 0., 0., 1., 0., 0., 1., 1., 1., 0.,
???????? 0.],
??????? [0., 0., 0., 1., 0., 0., 1., 1., 1., 0., 1., 0., 0., 1., 0., 0., 0., 1.,
???????? 1.],
??????? [0., 1., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0., 1., 0., 0., 0., 0., 0.,
???????? 0.]])

2.使用結巴分詞工具
import torch
import torch.nn.functional as F 
import jieba#示例中文文本
texts = ['你好,最近怎么樣?', '我過得很好,謝謝!', '再見。']#使用結巴分詞進行分詞
tokenized_texts = [list(jieba.cut(text)) for text in texts]#構建詞匯表
word_index = {}
index_word = {}
for i,word in enumerate(set([word for text in tokenized_texts for word in text])):word_index[word] = iindex_word[i] = word#將文本轉化為整數序列
sequences =[[word_index[word] for word in text] for text in tokenized_texts]#獲取詞匯表大小
vocab_size =len(word_index)#將整數序列轉化為one-hot編碼
one_hot_results = torch.zeros(len(texts),vocab_size)
for i,seq in enumerate(sequences):one_hot_results[i,seq]=1#打印結果
print("詞匯表:")
print(word_index)
print("\n文本:")
print(texts)
print("\n分詞結果")
print(tokenized_texts)
print("\n文本序列:")
print(sequences)
print("\none-Hot編碼:")
print(one_hot_results)

詞匯表:
{'你好': 0, '得': 1, '再見': 2, '?': 3, '怎么樣': 4, ',': 5, '最近': 6, '很': 7, '!': 8, '謝謝': 9, '。': 10, '我過': 11, '好': 12}

文本:
['你好,最近怎么樣?', '我過得很好,謝謝!', '再見。']

分詞結果
[['你好', ',', '最近', '怎么樣', '?'], ['我過', '得', '很', '好', ',', '謝謝', '!'], ['再見', '。']]

文本序列:
[[0, 5, 6, 4, 3], [11, 1, 7, 12, 5, 9, 8], [2, 10]]

one-Hot編碼:
tensor([[1., 0., 0., 1., 1., 1., 1., 0., 0., 0., 0., 0., 0.],
??????? [0., 1., 0., 0., 0., 1., 0., 1., 1., 1., 0., 1., 1.],
??????? [0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.]])

四、任務案例

import torch
import torch.nn.functional as F 
import jieba# 定義文件路徑
file_name = 'F:/jupyter lab/DL-100-days/datasets/one_hot/任務文件.txt'# 打開文件并讀取內容
with open(file_name, "r", encoding="utf-8") as file:context = file.read()# 將內容分割成句子sentences = context.split()# 使用jieba對每個句子進行分詞
tokenized_texts = [list(jieba.lcut(sentence)) for sentence in sentences]# 構建詞匯表
word_index = {}
index_word = {}
for i, word in enumerate(set([word for text in tokenized_texts for word in text])):word_index[word] = iindex_word[i] = word# 將文本轉化為整數序列
sequences = [[word_index[word] for word in text] for text in tokenized_texts]# 獲取詞匯表大小
vocab_size = len(word_index)# 將整數序列轉化為one-hot編碼
one_hot_results = torch.zeros(len(sentences), vocab_size)
for i, seq in enumerate(sequences):one_hot_results[i, seq] = 1# 打印結果
print("====詞匯表:====\n", word_index)
print("====文本:====\n", sentences)
print("====分詞結果:====\n", tokenized_texts)
print("====文本序列:====\n", sequences)
print("====One-Hot編碼:====\n", one_hot_results)

====詞匯表:====
{'訓練營': 0, '實際意義': 1, '深度': 2, '順序': 3, '模型': 4, '不同': 5, '值': 6, '的': 7, '錯誤': 8, '字典': 9, '距離': 10, 'one': 11, '或': 12, '是': 13, '實際上': 14, '例如': 15, '存在': 16, '2': 17, '認為': 18, '使用': 19, '這是': 20, '內容': 21, '啊': 22, '有': 23, '-': 24, '獨立': 25, '就是': 26, '向量': 27, '“': 28, '情況': 29, '和': 30, '具有': 31, '問題': 32, '365': 33, '分別': 34, '為了': 35, '地': 36, '將': 37, '同學': 38, ',': 39, 'K': 40, '其余': 41, '1': 42, '之間': 43, '這種': 44, '稱': 45, 'hot': 46, '如下': 47, '直觀': 48, '。': 49, '用': 50, '其中': 51, '或者': 52, ')': 53, '比較': 54, '上面': 55, '為': 56, '3': 57, '可能': 58, '這些': 59, '引入': 60, '每個': 61, '相互': 62, ':': 63, '序列': 64, '編碼方式': 65, '關系': 66, '、': 67, '表示': 68, '避免': 69, '不': 70, '但是': 71, '類別': 72, '也': 73, '思想': 74, '0': 75, '學習': 76, '了': 77, '這樣': 78, '一個': 79, '編碼': 80, '基本': 81, '元素': 82, '”': 83, '采用': 84, '三個': 85, '到': 86, '天': 87, '這': 88, '提到': 89, '而': 90, '映射': 91, '對于': 92, '教案': 93, '(': 94, '可以': 95, '只有': 96, '一些': 97, '會': 98, '獨熱': 99}
====文本:====
['比較直觀的編碼方式是采用上面提到的字典序列。', '例如,對于一個有三個類別的問題,可以用1、2和3分別表示這三個類別。', '但是,這種編碼方式存在一個問題,就是模型可能會錯誤地認為不同類別之間存在一些順序或距離關系', '而實際上這些關系可能是不存在的或者不具有實際意義的,為了避免這種問題,引入了one-hot編碼(也稱獨熱編碼)。', 'one-hot編碼的基本思想是將每個類別映射到一個向量,其中只有一個元素的值為1,其余元素的值為0。', '這樣,每個類別之間就是相互獨立的,不存在順序或距離關系。', '例如,對于三個類別的情況,可以使用如下的one-hot編碼:', '這是K同學啊的“365天深度學習訓練營”教案內容']
====分詞結果:====
[['比較', '直觀', '的', '編碼方式', '是', '采用', '上面', '提到', '的', '字典', '序列', '。'], ['例如', ',', '對于', '一個', '有', '三個', '類別', '的', '問題', ',', '可以', '用', '1', '、', '2', '和', '3', '分別', '表示', '這', '三個', '類別', '。'], ['但是', ',', '這種', '編碼方式', '存在', '一個', '問題', ',', '就是', '模型', '可能', '會', '錯誤', '地', '認為', '不同', '類別', '之間', '存在', '一些', '順序', '或', '距離', '關系'], ['而', '實際上', '這些', '關系', '可能', '是', '不', '存在', '的', '或者', '不', '具有', '實際意義', '的', ',', '為了', '避免', '這種', '問題', ',', '引入', '了', 'one', '-', 'hot', '編碼', '(', '也', '稱', '獨熱', '編碼', ')', '。'], ['one', '-', 'hot', '編碼', '的', '基本', '思想', '是', '將', '每個', '類別', '映射', '到', '一個', '向量', ',', '其中', '只有', '一個', '元素', '的', '值', '為', '1', ',', '其余', '元素', '的', '值', '為', '0', '。'], ['這樣', ',', '每個', '類別', '之間', '就是', '相互', '獨立', '的', ',', '不', '存在', '順序', '或', '距離', '關系', '。'], ['例如', ',', '對于', '三個', '類別', '的', '情況', ',', '可以', '使用', '如下', '的', 'one', '-', 'hot', '編碼', ':'], ['這是', 'K', '同學', '啊', '的', '“', '365', '天', '深度', '學習', '訓練營', '”', '教案', '內容']]
====文本序列:====
[[54, 48, 7, 65, 13, 84, 55, 89, 7, 9, 64, 49], [15, 39, 92, 79, 23, 85, 72, 7, 32, 39, 95, 50, 42, 67, 17, 30, 57, 34, 68, 88, 85, 72, 49], [71, 39, 44, 65, 16, 79, 32, 39, 26, 4, 58, 98, 8, 36, 18, 5, 72, 43, 16, 97, 3, 12, 10, 66], [90, 14, 59, 66, 58, 13, 70, 16, 7, 52, 70, 31, 1, 7, 39, 35, 69, 44, 32, 39, 60, 77, 11, 24, 46, 80, 94, 73, 45, 99, 80, 53, 49], [11, 24, 46, 80, 7, 81, 74, 13, 37, 61, 72, 91, 86, 79, 27, 39, 51, 96, 79, 82, 7, 6, 56, 42, 39, 41, 82, 7, 6, 56, 75, 49], [78, 39, 61, 72, 43, 26, 62, 25, 7, 39, 70, 16, 3, 12, 10, 66, 49], [15, 39, 92, 85, 72, 7, 29, 39, 95, 19, 47, 7, 11, 24, 46, 80, 63], [20, 40, 38, 22, 7, 28, 33, 87, 2, 76, 0, 83, 93, 21]]
====One-Hot編碼:====
tensor([[0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 0., 0., 1., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0.,
???????? 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1.,
???????? 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
??????? [0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1.,
???????? 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 1., 0.,
???????? 0., 0., 0., 1., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0.,
???????? 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0.,
???????? 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 1., 0.,
???????? 0., 0., 1., 0., 0., 1., 0., 0., 0., 0.],
??????? [0., 0., 0., 1., 1., 1., 0., 0., 1., 0., 1., 0., 1., 0., 0., 0., 1., 0.,
???????? 1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0.,
???????? 1., 0., 0., 1., 0., 0., 0., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 1.,
???????? 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 0., 0., 0., 1., 1., 0.],
??????? [0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 1., 0., 1., 1., 0., 1., 0.,
???????? 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 1.,
???????? 0., 0., 0., 1., 0., 0., 0., 0., 1., 1., 1., 0., 0., 1., 0., 0., 1., 1.,
???????? 0., 0., 0., 0., 1., 1., 1., 0., 0., 0., 0., 0., 1., 0., 0., 1., 1., 0.,
???????? 0., 1., 0., 0., 0., 1., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 1., 0., 0., 0., 1., 0., 0., 0., 0., 1.],
??????? [0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 1., 0., 1., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 0., 0., 1., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 0., 1., 0., 1., 0., 1., 1., 0., 0., 0., 1., 0., 0., 1., 0., 1., 0., 0.,
???????? 0., 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 1., 0., 1., 1., 0., 0., 0., 1., 1., 1., 1., 0., 0., 0., 1., 0., 0., 0.,
???????? 0., 1., 0., 0., 0., 0., 1., 0., 0., 0.],
??????? [0., 0., 0., 1., 0., 0., 0., 1., 0., 0., 1., 0., 1., 0., 0., 0., 1., 0.,
???????? 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 1., 0., 0., 0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 1., 0., 0., 0., 1., 0.,
???????? 1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
??????? [0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0.,
???????? 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0.,
???????? 0., 0., 1., 0., 0., 1., 0., 0., 0., 0.],
??????? [1., 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 1., 1., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1., 0., 0.,
???????? 0., 0., 1., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
???????? 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0.,
???????? 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.]])

五、學習心得

1.學習了one-hot編碼并將其應用于英文案例和中文案例中。在英文案例中,能夠識別獨立的單詞并自動進行分詞。而在中文案例中,不能自動識別,而是一個字。借助結巴分詞工具可以很好地分割一句話中的詞語。

2.掌握了構建詞匯表及其在文本向量化中的作用。在進行One-Hot編碼之前,需要先構建一個完整的詞匯表,將每個唯一的詞分配一個唯一的索引。

3.雖然One-Hot編碼實現簡單,但隨著詞匯量增大,其向量維度會急劇增加,且不同詞之間的語義關系無法體現。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82505.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82505.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82505.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 云服務器部署 Flask 項目(含后臺運行與 systemd 開機自啟)

一、準備工作 在開始正式部署之前,請確認以下前提條件已經準備好: 你有一臺運行 Linux 系統(CentOS 或 Ubuntu)的服務器; 服務器有公網 IP,本例中使用:111.229.204.102; 你擁有該服務器的管理員權限(可以使用 sudo); 打算使用 Flask 構建一個簡單的 Web 接口; 服務…

散貨拼柜業務:多貨主財務結算如何高效管理?

散貨拼柜業務滿足了小批量發貨客戶的需求,由于無法滿足海運整柜的條件,其模式通常涉及多個貨主共同分攤同一集裝箱的運輸項目。這種業務模型雖然在成本上具備優勢,但其復雜的財務結算過程往往給公司帶來了挑戰。 散貨拼柜業務的特點在于其小…

數據結構(7)—— 二叉樹(1)

目錄 前言 一、 樹概念及結構 1.1樹的概念 1.2樹的相關概念 1.3數的表示 1.二叉樹表示 2.孩子兄弟表示法 3.動態數組存儲 1.4樹的實際應用 二、二叉樹概念及結構 2.1概念 2.2特殊的二叉樹 1.滿二叉樹 2. 完全二叉樹 2.3二叉樹的性質 2.4二叉樹的存儲結構 1.順序存儲 2.鏈式存儲…

SpringBoot+Vue+微信小程序校園自助打印系統

概述?? 校園自助打印系統是現代化校園建設中不可或缺的一部分,基于SpringBootVue微信小程序開發的??免費Java源碼??項目,包含完整的用戶預約、打印店管理等功能模塊。 ??主要內容?? ?? 系統功能模塊?? ??登錄驗證模塊??:…

使用 useSearchParams 的一個沒有觸發控制臺報錯的錯誤用法

const searchParams useSearchParams(); // navigate(/?${searchParams.toString()});//帶過去的參數會把函數方法也帶過去 正確寫法應該是用[]解構 使用了數組解構(destructuring)來提取 useSearchParams 返回的數組中的第一個值 const [searchPara…

Blender的一些設置

1. 將Blender長度單位改為毫米(mm), 并設置guides Grid的縮放系數,避免網格不見了。 2. 布爾操作的(Apply)應用按鈕在哪里?好吧,在這里: 可以按下 CTRL A 快捷鍵。 3. 模型的 移動、旋轉、縮放快捷鍵: G,R&#xff0…

Inno Setup 腳本中常用術語釋義

1、目錄常量 {app} 應用程序所在的目錄。 {win} 系統的 Windows 目錄, “C:/WINDOWS”。 {sys} 系統的 Windows 系統(System)目錄,“C:/WINDOWS/SYSTEM”。 {src} 這個文件夾指向安裝程序所在的位置。 {pf} 程序…

【java面試】MySQL篇

MySQL篇 一、總體結構二、優化(一)定位慢查詢1.1 開源工具1.2Mysql自帶的慢日志查詢1.3 總結 (二)定位后優化2.1 優化2.2 總結 (三)索引3.1 索引3.2 索引底層數據結構——B樹3.3 總結 (四&#…

drawio 開源免費的流程圖繪制

開源地址 docker-compose 一鍵啟動 #This compose file adds draw.io to your stack version: 3.5 services:drawio:image: jgraph/drawiocontainer_name: drawiorestart: unless-stoppedports:- 8081:8080- 8443:8443environment:PUBLIC_DNS: domainORGANISATION_UNIT: unitOR…

江科大睡眠,停止,待機模式hal庫實現

修改主頻我們直接在cubeMx上面修改就行了,很方便 睡眠,停止,待機模式是通過對電源的控制來進行的,相關代碼在PWR文件里面 SEV(Send Event) void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SL…

【黃金評論】美元走強壓制金價:基于NLP政策因子與ARIMA-GARCH的聯動效應解析

一、基本面:多因子模型解析黃金承壓邏輯 1. 政策沖擊因子驅動美元強勢 通過NLP模型對關稅政策文本進行情感分析,構建政策不確定性指數(PUI)達89.3,觸發美元避險需求溢價。DSGE模型模擬顯示,鋼鐵關稅上調至…

藍橋云課ROS一鍵配置teb教程更新-250604

一鍵配置 echo "250604已經更新不動了"git clone https://gitcode.com/ZhangRelay1/donut.gitsudo apt-key add ~/donut/ros.keysudo apt updateecho "Upgrade Mission Completed."echo "Teb Mission Begins."sudo apt install ros-kinetic-sta…

OD 算法題 B卷【服務啟動】

文章目錄 服務啟動 服務啟動 有若干連續編號的服務(編號從0開始),服務間有依賴關系,啟動一個指定的服務,請判斷該服務是否可以成功啟動,并輸出依賴的前置服務編號;依賴關系是可以傳遞的&#x…

StarRocks與Apache Iceberg:構建高效湖倉一體的實時分析平臺

## 引言:數據湖的挑戰與演進 在數據驅動的時代,企業數據湖需要同時滿足海量存儲、高性能查詢、多引擎協作和實時更新等復雜需求。傳統基于 Hive 的數據湖方案面臨元數據管理低效、缺乏 ACID 事務支持、查詢性能瓶頸等問題。在此背景下,**Sta…

Kafka 單機部署啟動教程(適用于 Spark + Hadoop 環境)

🧭 Kafka 單機部署啟動教程(適用于 Spark Hadoop 環境) 📦 一、Kafka 版本選擇 推薦使用 Kafka 2.13-2.8.1(Scala 2.13,穩定適配 Spark 3.1.2 和 Hadoop 3.1.1) 下載地址(Apache 官…

C語言數組初始化方法大全(附帶實例)

在 C語言中,數組用于存儲相同類型的多個元素。數組的初始化是一個重要的概念,它允許我們在聲明數組的同時為其賦初值。 這篇文章,我將為大家詳細介紹 C語言中初始化數組的多種方法,以及一些需要注意的細節。 數組初始化的基本語…

RAMSUN分享全新超值型MM32F0050系列MCU

憑借全國產化的供應鏈優勢和可靠的國產高端工藝制程,靈動微再次推出全新超值型MM32F0050系列微控制器單元(MCU),將超值型MCU推向新的高度。 MM32F0050系列MCU配備了72MHz的Arm Cortex-M0內核,提供64KB的Flash存儲和8K…

CMS32M65xx/67xx系列CoreMark跑分測試

CMS32M65xx/67xx系列CoreMark跑分測試 1、參考資料準備 1.1、STM32官方跑分鏈接 1.2、官網鏈接 官方移植文檔,如下所示,點擊紅框處-移植文檔: A new whitepaper and video explain how to port CoreMark-Pro to bare-metal 1.3、測試軟件git下載鏈接 …

LeetCode 139. 單詞拆分(Word Break) - 動態規劃深度解析

文章目錄 問題描述動態規劃解法解法核心思路完整代碼實現關鍵代碼解析1. 數據結構初始化2. 動態規劃數組3. 核心循環邏輯4. 子串區間理解(關鍵)示例演算復雜度分析算法優化點總結本文詳細解析LeetCode 139題"單詞拆分"的動態規劃解法,涵蓋核心思路、代碼實現、區間…

獲客方式有哪些拓展方向?

品牌在面臨增長瓶頸時,如何拓展獲客方式會是一個首要考慮的問題。有些時候企業會將獲客渠道想得很復雜,其實仔細數下來,我們可以拓展的方向仍舊是根據渠道來溯源,因此相對固定。 一、跟隨流行趨勢 在數字營銷領域,緊跟…