清华大学H.264中文协议解读指南

版权申诉
0 下载量 164 浏览量 更新于2024-10-30 收藏 924KB RAR 举报
资源摘要信息:"H.264中文协议" H.264中文协议是一种视频编码标准,也被称为国际电信联盟(ITU-T)的标准H.264或者国际标准化组织(ISO)/国际电工委员会(IEC)的MPEG-4 AVC(高级视频编码)标准。H.264协议广泛应用于高清视频压缩领域,具有很高的压缩效率和较好的图像质量。 H.264协议的主要特点包括: 1. 高压缩效率:H.264协议相比于其他视频编码标准,可以在较低的比特率下获得较高的视频质量,使得视频文件更加小巧,节约存储空间。 2. 支持网络传输:H.264协议支持各种网络环境下的视频传输,包括互联网、无线网络等。 3. 兼容性强:H.264协议广泛应用于各种数字媒体设备和平台,如电视、手机、平板电脑、PC等。 4. 支持多种视频格式:H.264协议支持不同的视频格式,包括4K超高清视频、3D视频等。 H.264协议由清华大学电子工程系线路与系统实验室H.264小组编写,是一份不错的参考文档。该文档详细介绍了H.264协议的各个部分,包括编码原理、编码工具、编码过程等。 文档内容涵盖了H.264协议的各个部分,例如ITU-T H.264_200503 标准导读_ 9.pdf、ITU-T H.264_200503 标准导读_8.3.pdf、ITU-T H.264_200503 标准导读_8.7.pdf、ITU-T H.264 _2005.03_ 标准导读_Part 8.4.pdf、ITU-T H.264_200503 标准导读_8.4.pdf、ITU-T H.264_200503 标准导读_8.2.pdf、ITU-T H.264_200503 标准导读_6.4.pdf、ITU-T H.264_200503 标准导读_7.pdf等,每个文件都深入解读了H.264协议的不同部分。 例如,ITU-T H.264_200503 标准导读_ 9.pdf主要解读了H.264协议的第9部分,包括序列参数集、图像参数集、序列参数集的更新、图像参数集的更新、参考图像列表、片的结构等内容。 ITU-T H.264_200503 标准导读_8.3.pdf则深入解读了H.264协议的第8.3部分,包括编码流程、片头的编码、片内编码过程等内容。 此外,***.txt则可能是一个文本文件,包含了一些与H.264协议相关的说明或者其他信息。 总的来说,H.264中文协议是一份全面、详细、深入的H.264协议解读文档,对于理解H.264协议的原理、工具、过程等有着重要的参考价值。

from transformers import pipeline, BertTokenizer, BertModel import numpy as np import torch import jieba tokenizer = BertTokenizer.from_pretrained('bert-base-chinese') model = BertModel.from_pretrained('bert-base-chinese') ner_pipeline = pipeline('ner', model='bert-base-chinese') with open('output/weibo1.txt', 'r', encoding='utf-8') as f: data = f.readlines() def cosine_similarity(v1, v2): return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2)) def get_word_embedding(word): input_ids = tokenizer.encode(word, add_special_tokens=True) inputs = torch.tensor([input_ids]) outputs = model(inputs)[0][0][1:-1] word_embedding = np.mean(outputs.detach().numpy(), axis=0) return word_embedding def get_privacy_word(seed_word, data): privacy_word_list = [] seed_words = jieba.lcut(seed_word) jieba.load_userdict('data/userdict.txt') for line in data: words = jieba.lcut(line.strip()) ner_results = ner_pipeline(''.join(words)) for seed_word in seed_words: seed_word_embedding = get_word_embedding(seed_word) for ner_result in ner_results: if ner_result['word'] == seed_word and ner_result['entity'] == 'O': continue if ner_result['entity'] != seed_word: continue word = ner_result['word'] if len(word) < 3: continue word_embedding = get_word_embedding(word) similarity = cosine_similarity(seed_word_embedding, word_embedding) print(similarity, word) if similarity >= 0.6: privacy_word_list.append(word) privacy_word_set = set(privacy_word_list) return privacy_word_set 上述代码运行之后,结果为空集合,哪里出问题了,帮我修改一下

2023-05-30 上传

from transformers import BertTokenizer, BertModel import torch from sklearn.metrics.pairwise import cosine_similarity # 加载BERT模型和分词器 tokenizer = BertTokenizer.from_pretrained('bert-base-chinese') model = BertModel.from_pretrained('bert-base-chinese') # 种子词列表 seed_words = ['个人信息', '隐私', '泄露', '安全'] # 加载微博用户文本语料(假设存储在weibo1.txt文件中) with open('output/weibo1.txt', 'r', encoding='utf-8') as f: corpus = f.readlines() # 预处理文本语料,获取每个中文词汇的词向量 corpus_vectors = [] for text in corpus: # 使用BERT分词器将文本分成词汇 tokens = tokenizer.tokenize(text) # 将词汇转换为对应的id input_ids = tokenizer.convert_tokens_to_ids(tokens) # 将id序列转换为PyTorch张量 input_ids = torch.tensor(input_ids).unsqueeze(0) # 使用BERT模型计算词向量 with torch.no_grad(): outputs = model(input_ids) last_hidden_state = outputs[0][:, 1:-1, :] avg_pooling = torch.mean(last_hidden_state, dim=1) corpus_vectors.append(avg_pooling.numpy()) # 计算每个中文词汇与种子词的余弦相似度 similarity_threshold = 0.8 privacy_words = set() for seed_word in seed_words: # 将种子词转换为对应的id seed_word_ids = tokenizer.convert_tokens_to_ids(tokenizer.tokenize(seed_word)) # 将id序列转换为PyTorch张量,并增加batch size维度 seed_word_ids = torch.tensor(seed_word_ids).unsqueeze(0) # 使用BERT模型计算种子词的词向量 with torch.no_grad(): outputs = model(seed_word_ids) last_hidden_state = outputs[0][:, 1:-1, :] avg_pooling = torch.mean(last_hidden_state, dim=1) seed_word_vector = avg_pooling.numpy() # 计算每个中文词汇与种子词的余弦相似度 for i, vector in enumerate(corpus_vectors): sim = cosine_similarity([seed_word_vector], [vector])[0][0] if sim >= similarity_threshold: privacy_words.add(corpus[i]) print(privacy_words) 上述代码运行后报错了,报错信息:ValueError: Found array with dim 3. check_pairwise_arrays expected <= 2. 怎么修改?

2023-05-31 上传

import torch from transformers import BertTokenizer, BertModel # 加载Bert预训练模型和tokenizer model = BertModel.from_pretrained('bert-base-chinese') tokenizer = BertTokenizer.from_pretrained('bert-base-chinese') # 微博文本和种子词 text = '今天天气真好,心情非常愉快!' seeds = ['天气', '心情', '愉快'] # 将微博文本和种子词转换为Bert输入格式 inputs = tokenizer.encode_plus(text, add_special_tokens=True, return_tensors='pt') seed_inputs = tokenizer.encode_plus(seeds, add_special_tokens=True, return_tensors='pt', padding=True) # 使用Bert模型获取微博文本和种子词的词向量 with torch.no_grad(): text_embeddings = model(inputs['input_ids'], attention_mask=inputs['attention_mask'])[0] # [1, seq_len, hidden_size] seed_embeddings = model(seed_inputs['input_ids'], attention_mask=seed_inputs['attention_mask'])[0] # [batch_size, seq_len, hidden_size] # 计算种子词和微博文本中所有词语的余弦相似度 text_embeddings = text_embeddings.squeeze(0) # [seq_len, hidden_size] seed_embeddings = seed_embeddings.mean(dim=1) # [batch_size, hidden_size] -> [batch_size, 1, hidden_size] -> [batch_size, hidden_size] cosine_similarities = torch.matmul(text_embeddings, seed_embeddings.transpose(0, 1)) # [seq_len, batch_size] # 获取相似度最高的词语 similar_words = [] for i in range(len(seeds)): seed_similarities = cosine_similarities[:, i].tolist() max_sim_idx = seed_similarities.index(max(seed_similarities)) similar_word = tokenizer.convert_ids_to_tokens(inputs['input_ids'][0][max_sim_idx].item()) similar_words.append(similar_word) print(similar_words)

2023-05-22 上传