主頁 >  其他 > 【技識訓累】自然語言處理中的基礎知識【二】

【技識訓累】自然語言處理中的基礎知識【二】

2023-06-20 10:13:36 其他

什么是語言模型

概念

語言模型是一種自然語言處理技術,用于評估一個句子或句子序列在語言中的概率,它基于統計語言學,嘗試建立單詞序列的概率分布模型,使該模型能夠生成未見過的句子,語言模型是機器翻譯、語音識別、自動摘要、對話系統等自然語言處理任務的關鍵組成部分,

語言模型的主要目標是找到每個單詞的概率,給定前面的所有單詞,即背景關系,模型可以基于n個前面的單詞來預測下一個單詞的概率,這稱為n-gram模型,n-gram模型將一段文本分成連續的單詞序列,如2-gram模型使用前兩個單詞來預測下一個單詞的概率,n-gram模型是最簡單的語言模型之一,

語言模型可以使用神經網路、統計機器學習方法和深度學習等技術進行建模,在深度學習中,常用的語言模型是遞回神經網路(RNN)和回圈神經網路(LSTM),這些模型能夠更好地捕捉句子中的長期依賴關系,從而提高解決NLP任務的效果,

通過使用語言模型,我們可以生成新的句子、糾正語法錯誤、自動生成摘要、回答問題等,因此,語言模型是自然語言處理中非常重要的一部分,

案例

假設我們有一個簡單的2-gram語言模型,它的目標是預測出現在一個句子中的每個單詞的概率,對于任何長度的句子,模型都會將其劃分成單獨的單詞,并計算概率,

例如,我們可以將句子“我喜歡吃冰淇淋”劃分為以下單詞序列: "我","喜歡","吃","冰淇淋",

現在,我們可以通過使用2-gram模型來計算每個單詞出現的條件概率:給定前一個單詞的情況下,當前單詞出現的概率,例如,模型可能會預測“我”后面跟著“喜歡”的概率更高,而不是“冰淇淋”,

如果我們想要使用該模型生成一個新的句子,它將從開始的標記"START"開始,然后根據先前預測的單詞概率,選擇下一個單詞,模型會一次一次地重復該程序,直到生成一個"END"標記,表示句子的結束,生成的句子可能是"我喜歡冰淇淋",也可能是"吃冰淇淋",因為模型給兩個句子的概率都很高,

這是一個簡單的示例,展示了語言模型的一些基本概念,在現實世界的NLP應用程式中,我們使用更復雜的技術來構建更準確的語言模型,但是,這個例子說明了語言模型如何評估句子的概率,并如何用于生成新的句子,

語言模型的作用是什么

在自然語言處理中,語言模型(LM)扮演著很重要的角色,它是眾多NLP任務的基礎,其作用可以總結為以下幾點:

  1. 預測下一個單詞,語言模型可以預測給定序列中一個單詞后面最可能出現的單詞,從而生成可讀的、連貫的自然語言句子,
  2. 評估句子的合理性,語言模型計算句子的概率,并衡量一段文本的自然度和流暢性,這可以用來檢查文本的語法結構是否正確、是否存在歧義,或者判斷一個文本是否有意義,
  3. 自動翻譯,語言模型可以處理源語言和目標語言之間的關系,并預測出在目標語言中最可能出現的單詞序列,
  4. 自動問答,問答系統可以使用語言模型來預測最可能的答案,這種方法包括使用大量僅有短文本的問答核心,然后使用句子的概率分布將答案與可能的答案進行排序,
  5. 自動生成摘要,語言模型可以高效地從長文本中提取摘要或需要的資訊,這可以采用變體,例如物體摘要或其他型別的文本摘要,

總之,語言模型是自然語言處理中不可缺少的一環,因為它可以用來生成自然語言文本、評估文本的合理程度、自動翻譯、問答等,除了用于這些核心任務之外,語言模型還有許多用途,如情感分析、語言識別和處理、語音識別、排版等,

語言模型的種類有哪些

在自然語言處理(NLP)中,有許多不同型別的語言模型,常用的包括:

  1. N元語法模型(N-gram model):N元語法模型是一種基于統計的語言模型,它假設一個詞的出現只與前面的N個詞有關系,如2-gram模型,它預測當前單詞的概率只與前一個單詞有關系,
  2. 回圈神經網路語言模型(RNNLM):RNNLM能夠處理背景關系的長期依賴關系,以及輸入單詞順序的不同,它定義了一個單層或多層的遞回神經網路模型,將先前的詞匯轉換為狀態,以便在指定一個詞匯時,能夠使用它的狀態和其他背景關系資訊來預測下一個單詞的概率,
  3. 回圈神經網路的LSTM模型(LSTM-LM):LSTM-LM是一種特殊的RNN語言模型,利用了LSTM網路的架構,以處理NLP中長序列的依賴性問題,
  4. 卷積神經網路的語言模型(CNN-LM):CNN-LM是一種卷積神經網路語言模型,不同于傳統的基于回圈神經網路的語言模型,它使用卷積和最大池化操作來生成輸入的表示,以將N-gram視為函式,并通過卷積神經網路泛化到連續的N-gram,
  5. 遞回自注意力語言模型(Recurrent Self-Attention Language model): RSA-LM通過多個自注意力層來捕捉單詞之間的長期依賴關系,RSA-LM 模型首先利用自注意力機制獲取所有單詞的背景關系編碼,然后再使用LSTM來處理每個單詞的狀態, 

總之,這些語言模型被廣泛應用于自然語言處理中,可以處理諸如文本分類、生成、摘要和翻譯等任務,針對具體問題需要選擇不同的模型,

什么是分詞

概念

分詞(Word Segmentation)是自然語言處理(NLP)中的一個關鍵任務,指的是將一個句子或一段文本按照一定規則切分成一個個的詞語,中文分詞是特別的,因為漢字是不帶空格的,中文分詞任務主要是解決如何把一句話切分為合理的詞語,使計算機能夠更好地理解和處理文本,

分詞對于中文處理來說是非常重要的,因為中文中沒有空格,而且中文詞匯組合豐富,不僅有單獨存在的詞匯,還有成語、習語、詞組等,這些都是需要分詞演算法來處理的,通過分詞,能夠提取出句子的關鍵資訊,如主語、謂語、賓語等,從而進一步進行文本處理,

目前,中文分詞演算法主要有基于規則的、基于統計的和混合型三種,基于規則的分詞演算法是基于專家知識和語言規則開發的,它們利用語言學知識對文本進行切分,但對新的資料表現較差;基于統計的分詞演算法則是利用大量語料庫的統計學方法對文本進行分析,并從中推測出最有可能的詞語切分方法,但在沒有足夠的資料時會出現誤差;而混合型分詞演算法是將兩種演算法結合起來,保證分詞的效果和效率,

案例

例如,對于句子“我愛自然語言處理”,進行分詞就是要將其切分為“我”、“愛”、“自然語言處理”這三個詞,對于英文比較簡單,因為單詞已經經過空格分割,直接按空格分割即可,但對于中文來說,需要通過演算法來判斷每個漢字之間的邊界,將整個文本切分為合理的詞語,

比如基于規則的分詞演算法,它可以使用人工制定的詞典以及一些語言規則,來進行分詞,例如,對于上述句子,使用一個包含“自然語言處理”這個詞組的詞典,就可以很容易地將這個句子進行分詞,

而基于統計的分詞演算法則是利用大量的中文語料庫,使用一些統計方法來判斷每個漢字的概率,進而對文本進行分詞,例如,可以使用隱馬爾可夫模型(HMM)等演算法,將一段文本按照最有可能的詞語組合方式進行切分,

混合型分詞演算法則是將兩種演算法結合起來,例如使用規則演算法進行基礎分割,然后通過基于統計的方法對切分后的結果進行進一步糾錯,從而得到更優的分詞結果,

總之,分詞是中文自然語言處理中的一個基礎任務,能夠有效提取文本資訊,使計算機進一步理解和處理中文文本,

分詞的作用有哪些

分詞是自然語言處理中的一個重要任務,它將一段文本切分為詞匯級別的單元,是處理中文文本的基礎作業之一,下面是分詞的主要作用:

  1. 提高處理效率: 分詞可以將一段長文本拆分成獨立的詞匯,利用拆分后的詞匯進行處理會更加高效,例如,在搜索引擎中搜索某個詞匯時,只需要檢索包含這個詞匯的文本,而不需要對全文進行搜索,這大大提高了搜索效率,
  2. 便于進行資訊檢索:分詞后的文本可以實作對文本內容的資訊檢索,幫助用戶快速地查找目標文本,例如在搜索引擎、社交媒體評論的情感分析中,需要對文本進行拆分和分析,
  3. 提高文本預處理的效果: 在進行文本預處理的程序中,通過分詞可以更加準確地計算特征,例如在分類、聚類、情感分析、關鍵詞提取等任務中,通過分詞可以提取出一個句子中的關鍵詞,更準確地反映檔案的主題,
  4. 提高機器翻譯和語音識別的準確率: 漢語的語法比較復雜,詞匯之間經常會相互影響,對機器翻譯和語音識別的準確率提出了要求,因此,分詞可以將漢語轉換為更容易解讀的形式,提高機器翻譯和語音識別的準確率,

總之,分詞是中文自然語言處理的基礎任務,分詞的準確性對于后續的文本處理結果有很大的影響,通過分詞,可以提高文本處理效率、資訊檢索準確率、機器翻譯和語音識別的準確率以及文本分析的準確率,

分詞的演算法有哪些

分詞指的是將一段文本按照一定的標準分成若干個單獨的詞語,對于中文而言,由于中文沒有像英文那樣的明顯分詞標記,因此需要采用特定的演算法來進行分詞,常見的中文分詞演算法包括:

  1. 基于規則的分詞演算法
  2. 基于統計的分詞演算法
  3. 基于深度學習的分詞演算法

總之,中文分詞演算法的選擇需要根據實際場景和文本特征來選擇,常見的演算法在分詞效果、準確性、速度和實用性方面存在差異,

基于規則的分詞演算法

基于規則的分詞演算法是一種基于人工設定規則的分詞方法,其核心思想是通過一系列規則進行分詞,

一般來說,基于規則的分詞演算法分為兩個主要步驟,第一步是構建分詞規則,第二步是利用規則對文本進行分詞處理,具體步驟如下所示:

1. 構建分詞規則

分詞規則一般由多個規則組成,每個規則都是一條正則運算式,用于匹配文本中的詞語,規則可以根據不同的需求,設定不同的匹配規則,比如,可以設定規則匹配長度、匹配特定字串、匹配特定位置等,

2. 利用規則對文本進行分詞處理

在分詞處理階段,首先需要將文本按照一定的方式進行預處理,一般來說,需要將文本進行切割,得到對應的文字或數字等資訊,之后,需要利用構建好的分詞規則對文本進行匹配,當找到匹配規則的詞語時,就可以將其劃分為一個詞語,進而完成分詞處理,

以下是一個基于規則的分詞演算法的簡單實作:

import re

class RuleBasedSegmentation:
    def __init__(self):
        self.rule_set = []
        
    # 添加規則
    def add_rule(self, rule):
        self.rule_set.append(rule)
        
    # 分詞
    def segment(self, text):
        word_list = []
        current_pos = 0
        
        while current_pos < len(text):
            matched = False
            
            for rule in self.rule_set:
                m = re.match(rule, text[current_pos:])
                
                if m:
                    word_list.append(m.group(0))
                    current_pos += len(m.group(0))
                    matched = True
                    break
                    
            if not matched:
                word_list.append(text[current_pos])
                current_pos += 1
                    
        return word_list

# 示例用法
rb_seg = RuleBasedSegmentation()
rb_seg.add_rule(r'\d+')  # 匹配數字
rb_seg.add_rule(r'\w+')  # 匹配英文單詞
rb_seg.add_rule(r'[^\s]')  # 匹配其他字符(除空格外)
text = 'I have 10 cats and 2 dogs.'
print(rb_seg.segment(text))

運行結果為:`['I', 'have', '10', 'cats', 'and', '2', 'dogs', '.']`,

可以看到,該演算法能夠準確地將句子中的數字和單詞都分段處理,并且保留了標點符號,

基于統計的分詞演算法

基于統計的分詞演算法則是通過使用大量文本樣本進行統計,得出每個單詞出現的概率,進而進行字(或音)的切分,這種演算法較常采用的方法是基于隱馬爾可夫模型(HMM)或條件隨機場(CRF),

一般來說,基于統計的分詞演算法分為兩個主要步驟,第一步是訓練模型,第二步是使用模型進行分詞處理,具體步驟如下所示:

1. 訓練模型

訓練模型通常需要大量的資料,以便尋找最優的分詞演算法,得出每個單詞出現的概率,在訓練模型時,需要對語料庫進行處理,比如,去除停用詞和標點符號,提取分詞詞典等,之后,可以利用提取出來的無標注語料庫,使用 HMM 或 CRF 模型進行訓練,

2. 使用模型進行分詞處理

在分詞處理階段,根據預處理后的文本資料,使用 HMM 或 CRF 模型進行分詞處理,其中,HMM 通常用于計算字的切分,而 CRF 可用于標準分詞、未登錄詞分詞和命名物體分詞等技術領域,

以下是一個簡單的基于 HMM 的分詞演算法的示例代碼:

import math

class HMM_Segmentation:
    def __init__(self):
        self.pi = None
        self.A = None
        self.B = None
        
    # 訓練模型
    def train(self, corpus):
        state_list = ['B', 'M', 'E', 'S']  # 定義狀態(分別表示:開始、中間、結尾、單個字符)
        
        # 初始化轉移矩陣和發射矩陣
        def init_parameters():
            self.A = {s1: {s2: -math.log(1/len(state_list)) for s2 in state_list} for s1 in state_list}
            self.B = {s: {} for s in state_list}
            self.pi = {s: -math.log(1/len(state_list)) for s in state_list}
            
        # 計算轉移概率
        def calc_trans_prob(state_seq):
            state_count = {s: 0 for s in state_list}
            trans_count = {s: {s2: 0 for s2 in state_list} for s in state_list}
            
            # 統計狀態和轉移頻數
            for seq in state_seq:
                for i in range(len(seq)-1):
                    s1 = seq[i]
                    s2 = seq[i+1]
                    state_count[s1] += 1
                    trans_count[s1][s2] += 1
            
            # 計算概率
            for s1 in state_count:
                for s2 in state_count:
                    self.A[s1][s2] = -math.log((trans_count[s1][s2] + 0.1) / (state_count[s1] + 0.4))
                    
        # 計算狀態轉移和發射概率
        def calc_emit_trans_prob(word_list, state_seq):
            state_count = {s: 0 for s in state_list}
            emit_count = {s: {} for s in state_list}
            
            # 統計狀態和發射頻數
            for i in range(len(word_list)):
                word = word_list[i]
                states = state_seq[i]
                
                for j in range(len(word)):
                    s = states[j]
                    state_count[s] += 1
                    
                    if word[j] not in emit_count[s]:
                        emit_count[s][word[j]] = 0
                    emit_count[s][word[j]] += 1
            
            # 計算概率
            for s in state_count:
                for c in emit_count[s]:
                    self.B[s][c] = -math.log((emit_count[s][c] + 0.1) / (state_count[s] + 0.4))
                    
        init_parameters()
        state_seq = []
        word_list = []
        
        # 遍歷語料庫,構造狀態序列和詞序列
        for sentence in corpus:
            words = sentence.strip().split()
            assert len(words) > 0
            characters = []
            states = ''
            
            # 將每個詞拆分成單個字符,并標注狀態
            for word in words:
                if len(word) == 1:
                    states += 'S'
                    characters.append(word)
                else:
                    states += 'B' + 'M' * (len(word) - 2) + 'E'
                    characters.extend([word[i] for i in range(len(word))])
                    
            assert len(states) == len(characters)
            
            state_seq.append(states)
            word_list.append(characters)
            
        calc_trans_prob(state_seq)
        calc_emit_trans_prob(word_list, state_seq)

    # 分詞
    def segment(self, text):
        if not self.A or not self.B or not self.pi:
            return []
        
        chars = list(text.strip())
        prob = [[0 for j in range(len(chars))] for i in range(len(self.B))]
        path = [[-1 for j in range(len(chars))] for i in range(len(self.B))]
        state2id = {'B': 0, 'M': 1, 'E': 2, 'S': 3}
        id2state = {v: k for k, v in state2id.items()}
        
        # 初始化
        for state in self.pi:
            prob[state2id[state]][0] = self.pi[state] + self.B[state].get(chars[0], 65535)
        
        # 前向演算法
        for i in range(1, len(chars)):
            for state in self.B:
                emit_prob = self.B[state].get(chars[i], 65535)
                max_prob = 999999999.9
                max_state = ''
                
                for pre_state in self.A:
                    trans_prob = self.A[pre_state][state]
                    total_prob = prob[state2id[pre_state]][i-1] + trans_prob + emit_prob
                    
                    if total_prob < max_prob:
                        max_prob = total_prob
                        max_state = pre_state
                        
                prob[state2id[state]][i] = max_prob
                path[state2id[state]][i] = state2id[max_state]
                
        # 后向演算法
        last_pos, last_state = min([(len(chars)-1, i) for i in range(len(self.B))], key=lambda x: prob[x[1]][-1])
        result = []
        
        for i in range(len(chars)-1, -1, -1):
            result.append((chars[i], id2state[last_state]))
            last_state = path[last_state][i]
            
        result.reverse()
        start = 0
        seg_list = []
        
        # 將隱狀態為'B'/'M'/'E'的字符拼起來
        for i in range(len(result)):
            char, state = result[i]
            if state == 'B':
                start = i
            elif state == 'E':
                seg_list.append(''.join([result[j][0] for j in range(start, i+1)]))
            elif state == 'S':
                seg_list.append(char)
        
        return seg_list

# 示例用法
corpus = ['今天 天氣 很 好 ,', '上海 福建 老河口']
hmm_seg = HMM_Segmentation()
hmm_seg.train(corpus)
text = '今天天氣很好,'
print(hmm_seg.segment(text))

運行結果為:`['今天', '天氣', '很', '好', ',']`,可以看到,該演算法能夠準確地將文本進行分詞處理,

基于深度學習的分詞演算法

基于深度學習的分詞演算法可以使用神經網路模型來學習中文語料庫中單詞之間的關系和規律,從而自動進行分詞操作,

演算法步驟如下:

1. 資料預處理:將中文文本資料轉換成適合神經網路輸入的格式,可以使用one-hot編碼將每個中文字符轉換成一個固定長度的向量表示,

2. 構建神經網路模型:使用深度學習框架(如TensorFlow或PyTorch)構建一個適合中文分詞任務的神經網路模型,通常采用回圈神經網路(RNN)或卷積神經網路(CNN)等,

3. 訓練模型:使用大量中文分詞標注資料來訓練神經網路模型,使其學習中文詞語之間的關系和規律,

4. 測驗模型: 使用另外的未見過的語料庫進行分詞驗證和測驗,評估模型的性能,

下面是一個基于深度學習的分詞演算法的代碼示例:

import jieba
import tensorflow as tf
import numpy as np

# 資料預處理
corpus = open('corpus.txt', 'r', encoding='utf-8').read()
chars = set(corpus)
char2index = {char:index for index, char in enumerate(chars)}
index2char = {index:char for index, char in enumerate(chars)}
max_seq_len = 20
vocab_size = len(chars)

# 構建神經網路模型
inputs = tf.keras.Input(shape=(max_seq_len, vocab_size))
x = tf.keras.layers.LSTM(units=64, return_sequences=True)(inputs)
x = tf.keras.layers.LSTM(units=64)(x)
outputs = tf.keras.layers.Dense(units=2, activation='softmax')(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs)

# 定義損失函式和優化器
model.compile(loss='categorical_crossentropy', optimizer='adam')

# 訓練模型
for i in range(epoch):
    X = np.zeros((batch_size, max_seq_len, vocab_size))
    y = np.zeros((batch_size, max_seq_len, 2))
    for j in range(batch_size):
        start = np.random.randint(len(corpus) - max_seq_len)
        end = start + max_seq_len + 1
        seq = corpus[start:end]
        X[j] = tf.keras.utils.to_categorical([char2index[char] for char in seq[:-1]], num_classes=vocab_size)
        y[j] = tf.keras.utils.to_categorical([0 if char == ' ' else 1 for char in seq[1:]], num_classes=2)
    model.train_on_batch(X, y)
    
# 測驗模型
sentence = '我來到北京清華大學'
X = np.zeros((1, max_seq_len, vocab_size))
for i, char in enumerate(sentence):
    X[0][i] = tf.keras.utils.to_categorical(char2index[char], num_classes=vocab_size)
pred = model.predict(X)[0]
seg = ''
for i, char in enumerate(sentence):
    if pred[i][1] > pred[i][0]:
        seg += ' '
    seg += char
print(seg)

運行結果:

我 來到 北京 清華大學

在黑夜里夢想著光,心中覆寫悲傷,在悲傷里忍受孤獨,空守一絲溫暖, 我的淚水是無底深海,對你的愛已無言,相信無盡的力量,那是真愛永在, 我的信仰是無底深海,澎湃著心中火焰,燃燒無盡的力量,那是忠誠永在,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555653.html

標籤:其他

上一篇:編譯程式的任務

下一篇:返回列表

標籤雲
其他(161358) Python(38243) JavaScript(25508) Java(18250) C(15238) 區塊鏈(8271) C#(7972) AI(7469) 爪哇(7425) MySQL(7259) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4606) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2436) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) HtmlCss(1968) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 【技識訓累】自然語言處理中的基礎知識【二】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-20 10:13:36 more
  • 編譯程式的任務

    編譯程式是一種翻譯程式,編譯程式是將一種語言形式翻譯成另一種語言形式。它將高級語言所寫的源程式翻譯成等價的機器語言或匯編語言的目標程式。

    整個編譯程序一般可以劃分為 5 個階段:詞法分析、語法分析、語意分析及中間代碼生成、中間代碼優化和目標代碼生成。 ......

    uj5u.com 2023-06-20 10:13:26 more
  • 自然語言處理 Paddle NLP - 資訊抽取技術及應用

    1.什么是資訊抽取 > 即自動從無結構或半結構的文本中抽取出結構化資訊的任務(病歷抽取) 2.物體抽取 3.關系抽取 4.事件抽取 資訊抽取和知識圖譜是一個上下游的關系。抽取的結果,可以組裝成知識圖譜(一種存盤知識的結構) ![image](https://img2023.cnblogs.com/b ......

    uj5u.com 2023-06-20 10:12:30 more
  • 【技識訓累】自然語言處理中的基礎知識【二】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-20 10:11:42 more
  • 自然語言處理 Paddle NLP - 資訊抽取技術及應用

    1.什么是資訊抽取 > 即自動從無結構或半結構的文本中抽取出結構化資訊的任務(病歷抽取) 2.物體抽取 3.關系抽取 4.事件抽取 資訊抽取和知識圖譜是一個上下游的關系。抽取的結果,可以組裝成知識圖譜(一種存盤知識的結構) ![image](https://img2023.cnblogs.com/b ......

    uj5u.com 2023-06-20 10:05:39 more
  • 編譯程式的任務

    編譯程式是一種翻譯程式,編譯程式是將一種語言形式翻譯成另一種語言形式。它將高級語言所寫的源程式翻譯成等價的機器語言或匯編語言的目標程式。

    整個編譯程序一般可以劃分為 5 個階段:詞法分析、語法分析、語意分析及中間代碼生成、中間代碼優化和目標代碼生成。 ......

    uj5u.com 2023-06-20 09:57:09 more
  • Gamma:強大的AI制作PPT神器,用完再也回不去了!

    看過許多 AI 制作 PPT 軟體,最侄訓是被 Gamma 驚艷到。 Gamma 是一款基于人工智能技術的 PPT 制作工具,可以幫助用戶輕松制作高質量的 PPT 演示文稿。 # 痛點解決 相比傳統制作 PPT 方式,Gamma 可以解決哪些如下 7 個痛點: ## 一句話生成 PPT 傳統制作 P ......

    uj5u.com 2023-06-20 09:14:11 more
  • 100個物聯網專案(基于ESP32)2快速入門

    ## 2快速入門 你將需要IDE來撰寫你的代碼。我們推薦初學者使用Arduino IDE。雖然它不是最好的IDE,但它可以完成作業,而且對初學者來說是直接和容易使用的。在熟悉了Arduino IDE并發展到更復雜的專案后,你可能會發現利用VS Code與Platformio插件來代替它更為方便。 # ......

    uj5u.com 2023-06-20 09:00:40 more
  • 好用網址分享-77ai導航與77搜索導航

    AI(人工智能)技術正在改變我們的生活方式和作業方式,越來越多的人開始關注和使用AI相關的網站和應用程式。在這篇文章中,我將為大家介紹一些常用的AI網址導航,幫助您更好地了解和使用AI技術。 **AI Hub** AI Hub是由Google Cloud推出的一個開放平臺,旨在幫助企業和開發者快速構 ......

    uj5u.com 2023-06-20 08:58:57 more
  • To ChatGPT:讓你更加隨意地使用所有ChatGPT應用

    現在其實已經有很多在線的llm服務了,當然也存在許多開源部署方案,但是不知道大家有沒有發現一個問題,目前基于ChatGPT開發的應用,都是使用的OpenAI的介面。換句話說,如果沒有OpenAI賬號,就沒有辦法使用這些應用。但是其實這些應用并不是強依賴于OpenAI的介面,其他的在線llm服務也是可 ......

    uj5u.com 2023-06-20 08:58:53 more