Copy disabled (too large)
Download .txt
Showing preview only (13,241K chars total). Download the full file to get everything.
Repository: zingp/NLP
Branch: master
Commit: 87cddc4db741
Files: 188
Total size: 41.6 MB
Directory structure:
gitextract_6ic6_av9/
├── .gitignore
├── LSTM_crf/
│ └── torch_crf.ipynb
├── P000CheatSheet/
│ ├── Matrix_multiplication.ipynb
│ ├── Untitled.ipynb
│ ├── pack_padded_and_pad_packed.ipynb
│ ├── posEmbeding.ipynb
│ ├── py-rouge.ipynb
│ ├── pytorch_nn_cheat_sheet.ipynb
│ ├── struct_tf.ipynb
│ └── torch_gather.ipynb
├── P001-Naive-Bayes-Text-Classifier/
│ ├── Database/
│ │ └── SogouC/
│ │ ├── ClassList.txt
│ │ └── Sample/
│ │ ├── C000008/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000010/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000013/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000014/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000016/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000020/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000022/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000023/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ └── C000024/
│ │ ├── 10.txt
│ │ ├── 11.txt
│ │ ├── 12.txt
│ │ ├── 13.txt
│ │ ├── 14.txt
│ │ ├── 15.txt
│ │ ├── 16.txt
│ │ ├── 17.txt
│ │ ├── 18.txt
│ │ └── 19.txt
│ ├── NaiveBayes-TextClassifier.ipynb
│ ├── stopwords_cn.txt
│ └── 朴素贝叶斯新闻分类.html
├── P002-Pytorch-Two-Layers-Neural-Net/
│ └── two_layer_neural_net.ipynb
├── P003-pytorch-Language-Model/
│ ├── _1_lm_lstm.ipynb
│ ├── _2_lm_lstm_bll.ipynb
│ └── _3_lm_lstm_lc.ipynb
├── P004-Pytorch-Word2Vec/
│ └── PytorchWord2Vec.ipynb
├── P005-Pytorch-Text-Classifer/
│ ├── _0_情感分类_词向量平均.ipynb
│ ├── _1_attention_wordavg.ipynb
│ └── _2_self_attention_wordavg.ipynb
├── P006TheAnnotatedTransformer/
│ ├── model_transformer.ipynb
│ └── test.ipynb
├── P007PytorchPointerGeneratorNetwork/
│ ├── make_finished_files.ipynb
│ ├── pointer-generator/
│ │ ├── __init__.py
│ │ ├── attention_decoder.py
│ │ ├── batcher.py
│ │ ├── beam_search.py
│ │ ├── data.py
│ │ ├── decode.py
│ │ ├── inspect_checkpoint.py
│ │ ├── model.py
│ │ ├── run_summarization.py
│ │ └── util.py
│ ├── pointer-generator-network-test.ipynb
│ ├── rouge_test.ipynb
│ ├── test.ipynb
│ └── weibo_news_preprocession.ipynb
├── P008GPT2TextSummary/
│ ├── Untitled.ipynb
│ └── gpt2_text_summary.ipynb
├── P009StructureLearning/
│ ├── POS-RNN-hw.ipynb
│ ├── dev.txt
│ ├── pos-hmm-hw-solution.ipynb
│ ├── pos-hmm-hw.ipynb
│ └── train.txt
├── P010Model/
│ ├── data.pk
│ └── model_transformer.py
├── P011WordSegmenting/
│ └── chinese_word_segmenting.ipynb
├── P012translate/
│ ├── machine_translation.ipynb
│ └── torch_test.ipynb
├── P013BertCode/
│ └── bertTrainTest.ipynb
├── P014Aho-Corasick-algorithm/
│ └── AC.ipynb
├── named_entity_recognition/
│ ├── .gitignore
│ ├── README.md
│ ├── ResumeNER/
│ │ ├── dev.char.bmes
│ │ ├── test.char.bmes
│ │ └── train.char.bmes
│ ├── ckpts/
│ │ ├── bilstm.pkl
│ │ ├── bilstm_crf.pkl
│ │ ├── crf.pkl
│ │ └── hmm.pkl
│ ├── data.py
│ ├── evaluate.py
│ ├── evaluating.py
│ ├── main.py
│ ├── models/
│ │ ├── __init__.py
│ │ ├── bilstm.py
│ │ ├── bilstm_crf.py
│ │ ├── config.py
│ │ ├── crf.py
│ │ ├── hmm.py
│ │ └── util.py
│ ├── output.txt
│ ├── requirement.txt
│ ├── test.py
│ └── utils.py
└── word2vector/
├── fasttext/
│ ├── README.md
│ ├── fasttext.py
│ ├── run.sh
│ ├── utils.py
│ └── wget.py
├── glove/
│ ├── README.md
│ ├── glove.py
│ ├── run.sh
│ ├── utils.py
│ └── wget.py
├── ngrams/
│ ├── README.md
│ ├── gen_model.sh
│ └── lm.py
├── requirements.txt
└── word2vec/
├── README.md
├── debug.ipynb
├── run.sh
├── utils.py
├── wget.py
├── word2vec-python3.ipynb
└── word2vec.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# .idea
.idea
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints/
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.jsoni
# picture
*.png
# data file
data/
*.csv
*.DS_Store
# models
*.pt
*ubyte.gz
*ubyte
*.model
*.th
*.pth
================================================
FILE: LSTM_crf/torch_crf.ipynb
================================================
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Bi-LSTM Conditional Random Field Discussion\n",
"- https://pytorch.org/tutorials/beginner/nlp/advanced_tutorial.html\n",
"- https://pytorch.apachecn.org/docs/0.3/nlp_advanced_tutorial.html\n",
"- 《Log-Linear Models, MEMMs, and CRFs》"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torch.autograd as autograd\n",
"import torch.nn as nn\n",
"import torch.optim as optim"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<torch._C.Generator at 0x7f05500945d0>"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.manual_seed(1)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
"def argmax(vec):\n",
" # 返回最大概率对应的类别\n",
" _, idx = torch.max(vec, 1)\n",
" return idx.item()\n",
"\n",
"\n",
"def prepare_sequence(seq, to_ix):\n",
" idxs = [to_ix[w] for w in seq]\n",
" return torch.tensor(idxs, dtype=torch.long)\n",
"\n",
"\n",
"# 使用数值上稳定的方法为前向算法计算指数和的对数\n",
"def log_sum_exp(vec):\n",
" # 等于torch.log(torch.sum(torch.exp(vec)))\n",
" max_score = vec[0, argmax(vec)]\n",
" max_score_broadcast = max_score.view(1, -1).expand(1, vec.size()[1])\n",
" return max_score + \\\n",
" torch.log(torch.sum(torch.exp(vec - max_score_broadcast)))\n"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [],
"source": [
"class BiLSTM_CRF(nn.Module):\n",
"\n",
" def __init__(self, vocab_size, tag_to_ix, embedding_dim, hidden_dim):\n",
" super(BiLSTM_CRF, self).__init__()\n",
" self.embedding_dim = embedding_dim\n",
" self.hidden_dim = hidden_dim\n",
" self.vocab_size = vocab_size\n",
" self.tag_to_ix = tag_to_ix\n",
" self.tagset_size = len(tag_to_ix)\n",
"\n",
" self.word_embeds = nn.Embedding(vocab_size, embedding_dim)\n",
" self.lstm = nn.LSTM(embedding_dim, hidden_dim // 2,\n",
" num_layers=1, bidirectional=True)\n",
"\n",
" # 将LSTM的输出映射到标记空间\n",
" self.hidden2tag = nn.Linear(hidden_dim, self.tagset_size)\n",
"\n",
" # 过渡参数矩阵. 条目 i,j 是 *从* j *到* i 的过渡的分数\n",
" self.transitions = nn.Parameter(\n",
" torch.randn(self.tagset_size, self.tagset_size))\n",
" \n",
" print(\"self.transitions:\", self.transitions)\n",
" \n",
" # 这两句声明强制约束了我们不能向开始标记标注传递和从结束标注传递\n",
" self.transitions.data[tag_to_ix[START_TAG], :] = -10000\n",
" self.transitions.data[:, tag_to_ix[STOP_TAG]] = -10000\n",
" print(\"self.transitions ------>:\", self.transitions)\n",
" self.hidden = self.init_hidden()\n",
"\n",
" def init_hidden(self):\n",
" return (torch.randn(2, 1, self.hidden_dim // 2),\n",
" torch.randn(2, 1, self.hidden_dim // 2))\n",
"\n",
" def _forward_alg(self, feats):\n",
" # 2 feats (seq, tag_nums)\n",
" # 执行前向算法来计算分割函数\n",
" init_alphas = torch.full((1, self.tagset_size), -10000.)\n",
" print(\"init_alphas:\", init_alphas.size())\n",
" # START_TAG 包含所有的分数\n",
" init_alphas[0][self.tag_to_ix[START_TAG]] = 0.\n",
"\n",
" # 将其包在一个变量类型中继而得到自动的反向传播\n",
" forward_var = init_alphas\n",
"\n",
" # 在句子中迭代\n",
" # 第一个词的(1, score)\n",
" for feat in feats:\n",
" print(\" one feat:\", feat.size())\n",
" alphas_t = [] # 当前时间步的前向变量\n",
" print(\"-\" * 50)\n",
" for next_tag in range(self.tagset_size):\n",
" print(\"next_tag::\", next_tag)\n",
" # 对 emission 得分执行广播机制: 它总是相同的,\n",
" # 不论前一个标注如何\n",
" emit_score = feat[next_tag].view(1, -1).expand(1, self.tagset_size)\n",
" print(\"emit_score:\", emit_score, emit_score.size())\n",
" # trans_score 第 i 个条目是从i过渡到 next_tag 的分数(转移到当前标签)\n",
" trans_score = self.transitions[next_tag].view(1, -1)\n",
" print(\"trans_score:\", trans_score, trans_score.size())\n",
" # next_tag_var 第 i 个条目是在我们执行 对数-求和-指数 前\n",
" # 边缘的值 (i -> next_tag)\n",
" print(\"forward_var:\", forward_var, forward_var.size())\n",
" next_tag_var = forward_var + trans_score + emit_score\n",
" print(\"next_tag_var:\", next_tag_var, next_tag_var.size())\n",
" # 这个标注的前向变量是对所有的分数执行 对数-求和-指数\n",
" alphas_t.append(log_sum_exp(next_tag_var).view(1))\n",
" print(\"alphas_t:\", alphas_t, len(alphas_t))\n",
" forward_var = torch.cat(alphas_t).view(1, -1)\n",
" print(\"forward_var:\", forward_var, forward_var.size())\n",
" terminal_var = forward_var + self.transitions[self.tag_to_ix[STOP_TAG]]\n",
" print(\"self.transitions[self.tag_to_ix[STOP_TAG]\", self.tag_to_ix[STOP_TAG], self.transitions[self.tag_to_ix[STOP_TAG]])\n",
" alpha = log_sum_exp(terminal_var)\n",
" return alpha\n",
"\n",
" def _get_lstm_features(self, sentence):\n",
" # 1\n",
" self.hidden = self.init_hidden()\n",
" embeds = self.word_embeds(sentence).view(len(sentence), 1, -1)\n",
" # (batch_size, seq_len, hidden_dim//2*2)\n",
" lstm_out, self.hidden = self.lstm(embeds, self.hidden)\n",
" # 去掉中间的\n",
" print(\"lstm_out:\", lstm_out.size())\n",
" lstm_out = lstm_out.view(len(sentence), self.hidden_dim)\n",
" lstm_feats = self.hidden2tag(lstm_out)\n",
" print(\"lstm_feats:\", lstm_feats.size())\n",
" # (seq, tag_nums)\n",
" return lstm_feats\n",
"\n",
" def _score_sentence(self, feats, tags):\n",
" # 给出标记序列的分数\n",
" score = torch.zeros(1)\n",
" tags = torch.cat([torch.tensor([self.tag_to_ix[START_TAG]], dtype=torch.long), tags])\n",
" for i, feat in enumerate(feats):\n",
" score = score + \\\n",
" self.transitions[tags[i + 1], tags[i]] + feat[tags[i + 1]]\n",
" score = score + self.transitions[self.tag_to_ix[STOP_TAG], tags[-1]]\n",
" return score\n",
"\n",
" def _viterbi_decode(self, feats):\n",
" backpointers = []\n",
"\n",
" # 在对数空间中初始化维特比变量\n",
" init_vvars = torch.full((1, self.tagset_size), -10000.)\n",
" init_vvars[0][self.tag_to_ix[START_TAG]] = 0\n",
"\n",
" # 在第 i 步的 forward_var 存放第 i-1 步的维特比变量\n",
" forward_var = init_vvars\n",
" for feat in feats:\n",
" bptrs_t = [] # 存放这一步的后指针\n",
" viterbivars_t = [] # 存放这一步的维特比变量\n",
"\n",
" for next_tag in range(self.tagset_size):\n",
" # next_tag_var[i] 存放先前一步标注i的\n",
" # 维特比变量, 加上了从标注 i 到 next_tag 的过渡的分数\n",
" # 我们在这里并没有将 emission 分数包含进来, 因为\n",
" # 最大值并不依赖于它们(我们在下面对它们进行的是相加)\n",
" next_tag_var = forward_var + self.transitions[next_tag]\n",
" best_tag_id = argmax(next_tag_var)\n",
" bptrs_t.append(best_tag_id)\n",
" viterbivars_t.append(next_tag_var[0][best_tag_id].view(1))\n",
" # 现在将所有 emission 得分相加, 将 forward_var\n",
" # 赋值到我们刚刚计算出来的维特比变量集合\n",
" forward_var = (torch.cat(viterbivars_t) + feat).view(1, -1)\n",
" backpointers.append(bptrs_t)\n",
"\n",
" # 过渡到 STOP_TAG\n",
" terminal_var = forward_var + self.transitions[self.tag_to_ix[STOP_TAG]]\n",
" best_tag_id = argmax(terminal_var)\n",
" path_score = terminal_var[0][best_tag_id]\n",
"\n",
" # 跟着后指针去解码最佳路径\n",
" best_path = [best_tag_id]\n",
" for bptrs_t in reversed(backpointers):\n",
" best_tag_id = bptrs_t[best_tag_id]\n",
" best_path.append(best_tag_id)\n",
" # 弹出开始的标签 (我们并不希望把这个返回到调用函数)\n",
" start = best_path.pop()\n",
" assert start == self.tag_to_ix[START_TAG] # 健全性检查\n",
" best_path.reverse()\n",
" return path_score, best_path\n",
"\n",
" def neg_log_likelihood(self, sentence, tags):\n",
" #(seq_len, tag_size)\n",
" feats = self._get_lstm_features(sentence)\n",
" # 所有可能tag链分数总和\n",
" forward_score = self._forward_alg(feats)\n",
" # 真实句子分数\n",
" gold_score = self._score_sentence(feats, tags)\n",
" return forward_score - gold_score\n",
"\n",
" def forward(self, sentence): # 不要把这和上面的 _forward_alg 混淆\n",
" # 得到 BiLSTM 输出分数\n",
" lstm_feats = self._get_lstm_features(sentence)\n",
"\n",
" # 给定特征, 找到最好的路径\n",
" score, tag_seq = self._viterbi_decode(lstm_feats)\n",
" return score, tag_seq"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [],
"source": [
"START_TAG = \"<START>\"\n",
"STOP_TAG = \"<STOP>\"\n",
"EMBEDDING_DIM = 5\n",
"HIDDEN_DIM = 4\n",
"\n",
"# 制造训练数据\n",
"training_data = [(\n",
" \"长 城 位 于 北 京 市 延 庆 县\".split(),\n",
" \"B I O O B I I B I I\".split()\n",
"), (\n",
" \"中 国 最 好 的 大 学 是 清 华 大 学\".split(),\n",
" \"B I O O O B I O B I I I\".split()\n",
")]\n",
"\n",
"\n",
"word_to_ix = {}\n",
"for sentence, tags in training_data:\n",
" for word in sentence:\n",
" if word not in word_to_ix:\n",
" word_to_ix[word] = len(word_to_ix)\n",
"\n",
"tag_to_ix = {\"B\": 0, \"I\": 1, \"O\": 2, START_TAG: 3, STOP_TAG: 4}"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'长': 0, '城': 1, '位': 2, '于': 3, '北': 4, '京': 5, '市': 6, '延': 7, '庆': 8, '县': 9, '中': 10, '国': 11, '最': 12, '好': 13, '的': 14, '大': 15, '学': 16, '是': 17, '清': 18, '华': 19}\n"
]
}
],
"source": [
"print(word_to_ix)"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"self.transitions: Parameter containing:\n",
"tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, 1.1781e+00],\n",
" [-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.2827e+00],\n",
" [-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0897e+00],\n",
" [-9.1565e-04, 5.6519e-01, 1.2051e+00, -6.8299e-02, -4.8749e-01],\n",
" [-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -9.1309e-01]],\n",
" requires_grad=True)\n",
"self.transitions ------>: Parameter containing:\n",
"tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04],\n",
" [-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04],\n",
" [-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04],\n",
" [-1.0000e+04, -1.0000e+04, -1.0000e+04, -1.0000e+04, -1.0000e+04],\n",
" [-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" requires_grad=True)\n"
]
}
],
"source": [
"model = BiLSTM_CRF(len(word_to_ix), tag_to_ix, EMBEDDING_DIM, HIDDEN_DIM)\n",
"optimizer = optim.SGD(model.parameters(), lr=0.01, weight_decay=1e-4)"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"lstm_out: torch.Size([10, 1, 4])\n",
"lstm_feats: torch.Size([10, 5])\n",
"训练前: ['长', '城', '位', '于', '北', '京', '市', '延', '庆', '县'] (tensor(5.0105), [2, 1, 2, 1, 2, 1, 2, 1, 2, 1])\n",
"tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])\n",
"lstm_out: torch.Size([10, 1, 4])\n",
"lstm_feats: torch.Size([10, 5])\n",
"init_alphas: torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.4104, 0.4104, 0.4104, 0.4104, 0.4104]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[-10000., -10000., -10000., 0., -10000.]]) torch.Size([1, 5])\n",
"next_tag_var: tensor([[-1.0001e+04, -9.9986e+03, -9.9992e+03, 3.4595e-01, -2.0000e+04]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([0.3459], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.2503, 0.2503, 0.2503, 0.2503, 0.2503]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[-10000., -10000., -10000., 0., -10000.]]) torch.Size([1, 5])\n",
"next_tag_var: tensor([[-1.0001e+04, -1.0002e+04, -9.9991e+03, 8.2302e-01, -2.0000e+04]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([0.3459], grad_fn=<ViewBackward>), tensor([0.8230], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.4697, -0.4697, -0.4697, -0.4697, -0.4697]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[-10000., -10000., -10000., 0., -10000.]]) torch.Size([1, 5])\n",
"next_tag_var: tensor([[-1.0002e+04, -1.0001e+04, -1.0001e+04, 1.1466e+00, -2.0000e+04]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([0.3459], grad_fn=<ViewBackward>), tensor([0.8230], grad_fn=<ViewBackward>), tensor([1.1466], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[-0.0036, -0.0036, -0.0036, -0.0036, -0.0036]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[-10000., -10000., -10000., 0., -10000.]]) torch.Size([1, 5])\n",
"next_tag_var: tensor([[-20000.0039, -20000.0039, -20000.0039, -10000.0039, -20000.0039]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([0.3459], grad_fn=<ViewBackward>), tensor([0.8230], grad_fn=<ViewBackward>), tensor([1.1466], grad_fn=<ViewBackward>), tensor([-10000.0039], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.3023, -0.3023, -0.3023, -0.3023, -0.3023]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[-10000., -10000., -10000., 0., -10000.]]) torch.Size([1, 5])\n",
"next_tag_var: tensor([[-1.0001e+04, -9.9988e+03, -1.0000e+04, -2.3649e-01, -2.0000e+04]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([0.3459], grad_fn=<ViewBackward>), tensor([0.8230], grad_fn=<ViewBackward>), tensor([1.1466], grad_fn=<ViewBackward>), tensor([-10000.0039], grad_fn=<ViewBackward>), tensor([-0.2365], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 3.4595e-01, 8.2302e-01, 1.1466e+00, -1.0000e+04, -2.3649e-01]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.3177, 0.3177, 0.3177, 0.3177, 0.3177]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.4595e-01, 8.2302e-01, 1.1466e+00, -1.0000e+04, -2.3649e-01]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[-2.5370e-01, 2.1270e+00, 1.9019e+00, -9.9998e+03, -9.9999e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([2.7640], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.2904, 0.2904, 0.2904, 0.2904, 0.2904]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.4595e-01, 8.2302e-01, 1.1466e+00, -1.0000e+04, -2.3649e-01]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[-1.0323e+00, -1.2989e+00, 2.0854e+00, -9.9991e+03, -9.9999e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([2.7640], grad_fn=<ViewBackward>), tensor([2.1607], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.4401, -0.4401, -0.4401, -0.4401, -0.4401]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.4595e-01, 8.2302e-01, 1.1466e+00, -1.0000e+04, -2.3649e-01]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[-1.5343e+00, 2.5536e-01, 5.1831e-01, -9.9988e+03, -1.0001e+04]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([2.7640], grad_fn=<ViewBackward>), tensor([2.1607], grad_fn=<ViewBackward>), tensor([1.1587], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[0.0854, 0.0854, 0.0854, 0.0854, 0.0854]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.4595e-01, 8.2302e-01, 1.1466e+00, -1.0000e+04, -2.3649e-01]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ -9999.5693, -9999.0918, -9998.7686, -19999.9180, -10000.1514]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([2.7640], grad_fn=<ViewBackward>), tensor([2.1607], grad_fn=<ViewBackward>), tensor([1.1587], grad_fn=<ViewBackward>), tensor([-9997.8828], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.2287, -0.2287, -0.2287, -0.2287, -0.2287]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.4595e-01, 8.2302e-01, 1.1466e+00, -1.0000e+04, -2.3649e-01]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[-3.7982e-01, 2.0634e+00, 9.5547e-01, -1.0000e+04, -1.0000e+04]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([2.7640], grad_fn=<ViewBackward>), tensor([2.1607], grad_fn=<ViewBackward>), tensor([1.1587], grad_fn=<ViewBackward>), tensor([-9997.8828], grad_fn=<ViewBackward>), tensor([2.4120], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 2.7640e+00, 2.1607e+00, 1.1587e+00, -9.9979e+03, 2.4120e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.1949, 0.1949, 0.1949, 0.1949, 0.1949]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 2.7640e+00, 2.1607e+00, 1.1587e+00, -9.9979e+03, 2.4120e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 2.0416e+00, 3.3418e+00, 1.7911e+00, -9.9978e+03, -9.9974e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([3.7369], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.2991, 0.2991, 0.2991, 0.2991, 0.2991]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 2.7640e+00, 2.1607e+00, 1.1587e+00, -9.9979e+03, 2.4120e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 1.3945e+00, 4.7397e-02, 2.1061e+00, -9.9970e+03, -9.9973e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([3.7369], grad_fn=<ViewBackward>), tensor([2.5876], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.3622, -0.3622, -0.3622, -0.3622, -0.3622]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 2.7640e+00, 2.1607e+00, 1.1587e+00, -9.9979e+03, 2.4120e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 9.6160e-01, 1.6708e+00, 6.0821e-01, -9.9966e+03, -9.9980e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([3.7369], grad_fn=<ViewBackward>), tensor([2.5876], grad_fn=<ViewBackward>), tensor([2.2793], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[0.1018, 0.1018, 0.1018, 0.1018, 0.1018]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 2.7640e+00, 2.1607e+00, 1.1587e+00, -9.9979e+03, 2.4120e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ -9997.1348, -9997.7373, -9998.7402, -19997.7812, -9997.4863]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([3.7369], grad_fn=<ViewBackward>), tensor([2.5876], grad_fn=<ViewBackward>), tensor([2.2793], grad_fn=<ViewBackward>), tensor([-9996.2383], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.3620, -0.3620, -0.3620, -0.3620, -0.3620]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 2.7640e+00, 2.1607e+00, 1.1587e+00, -9.9979e+03, 2.4120e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 1.9049e+00, 3.2677e+00, 8.3419e-01, -9.9982e+03, -9.9980e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([3.7369], grad_fn=<ViewBackward>), tensor([2.5876], grad_fn=<ViewBackward>), tensor([2.2793], grad_fn=<ViewBackward>), tensor([-9996.2383], grad_fn=<ViewBackward>), tensor([3.5631], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 3.7369e+00, 2.5876e+00, 2.2793e+00, -9.9962e+03, 3.5631e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.1523, 0.1523, 0.1523, 0.1523, 0.1523]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.7369e+00, 2.5876e+00, 2.2793e+00, -9.9962e+03, 3.5631e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 2.9718e+00, 3.7261e+00, 2.8692e+00, -9.9962e+03, -9.9963e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([4.3652], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.2306, 0.2306, 0.2306, 0.2306, 0.2306]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.7369e+00, 2.5876e+00, 2.2793e+00, -9.9962e+03, 3.5631e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 2.2988e+00, 4.0584e-01, 3.1583e+00, -9.9954e+03, -9.9962e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([4.3652], grad_fn=<ViewBackward>), tensor([3.5551], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.3525, -0.3525, -0.3525, -0.3525, -0.3525]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.7369e+00, 2.5876e+00, 2.2793e+00, -9.9962e+03, 3.5631e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 1.9442e+00, 2.1075e+00, 1.7386e+00, -9.9950e+03, -9.9968e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([4.3652], grad_fn=<ViewBackward>), tensor([3.5551], grad_fn=<ViewBackward>), tensor([3.0400], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[0.0509, 0.0509, 0.0509, 0.0509, 0.0509]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.7369e+00, 2.5876e+00, 2.2793e+00, -9.9962e+03, 3.5631e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ -9996.2119, -9997.3613, -9997.6699, -19996.1875, -9996.3857]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([4.3652], grad_fn=<ViewBackward>), tensor([3.5551], grad_fn=<ViewBackward>), tensor([3.0400], grad_fn=<ViewBackward>), tensor([-9995.3408], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.4251, -0.4251, -0.4251, -0.4251, -0.4251]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 3.7369e+00, 2.5876e+00, 2.2793e+00, -9.9962e+03, 3.5631e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 2.8147e+00, 3.6315e+00, 1.8917e+00, -9.9966e+03, -9.9969e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([4.3652], grad_fn=<ViewBackward>), tensor([3.5551], grad_fn=<ViewBackward>), tensor([3.0400], grad_fn=<ViewBackward>), tensor([-9995.3408], grad_fn=<ViewBackward>), tensor([4.1123], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 4.3652e+00, 3.5551e+00, 3.0400e+00, -9.9953e+03, 4.1123e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.0359, 0.0359, 0.0359, 0.0359, 0.0359]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 4.3652e+00, 3.5551e+00, 3.0400e+00, -9.9953e+03, 4.1123e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 3.4838e+00, 4.5772e+00, 3.5135e+00, -9.9954e+03, -9.9959e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.0962], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.2854, 0.2854, 0.2854, 0.2854, 0.2854]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 4.3652e+00, 3.5551e+00, 3.0400e+00, -9.9953e+03, 4.1123e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 2.9820e+00, 1.4282e+00, 3.9738e+00, -9.9945e+03, -9.9956e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.0962], grad_fn=<ViewBackward>), tensor([4.3449], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.4203, -0.4203, -0.4203, -0.4203, -0.4203]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 4.3652e+00, 3.5551e+00, 3.0400e+00, -9.9953e+03, 4.1123e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 2.5047e+00, 3.0073e+00, 2.4315e+00, -9.9941e+03, -9.9963e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.0962], grad_fn=<ViewBackward>), tensor([4.3449], grad_fn=<ViewBackward>), tensor([3.7807], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[0.1320, 0.1320, 0.1320, 0.1320, 0.1320]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 4.3652e+00, 3.5551e+00, 3.0400e+00, -9.9953e+03, 4.1123e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ -9995.5029, -9996.3135, -9996.8281, -19995.2070, -9995.7559]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.0962], grad_fn=<ViewBackward>), tensor([4.3449], grad_fn=<ViewBackward>), tensor([3.7807], grad_fn=<ViewBackward>), tensor([-9994.5918], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.4417, -0.4417, -0.4417, -0.4417, -0.4417]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 4.3652e+00, 3.5551e+00, 3.0400e+00, -9.9953e+03, 4.1123e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 3.4264e+00, 4.5824e+00, 2.6358e+00, -9.9957e+03, -9.9963e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.0962], grad_fn=<ViewBackward>), tensor([4.3449], grad_fn=<ViewBackward>), tensor([3.7807], grad_fn=<ViewBackward>), tensor([-9994.5918], grad_fn=<ViewBackward>), tensor([4.9592], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 5.0962e+00, 4.3449e+00, 3.7807e+00, -9.9946e+03, 4.9592e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.0857, 0.0857, 0.0857, 0.0857, 0.0857]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.0962e+00, 4.3449e+00, 3.7807e+00, -9.9946e+03, 4.9592e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 4.2645e+00, 5.4168e+00, 4.3040e+00, -9.9946e+03, -9.9950e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.9143], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.2034, 0.2034, 0.2034, 0.2034, 0.2034]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.0962e+00, 4.3449e+00, 3.7807e+00, -9.9946e+03, 4.9592e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 3.6309e+00, 2.1359e+00, 4.6325e+00, -9.9938e+03, -9.9948e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.9143], grad_fn=<ViewBackward>), tensor([5.0038], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.4373, -0.4373, -0.4373, -0.4373, -0.4373]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.0962e+00, 4.3449e+00, 3.7807e+00, -9.9946e+03, 4.9592e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 3.2187e+00, 3.7800e+00, 3.1552e+00, -9.9934e+03, -9.9955e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.9143], grad_fn=<ViewBackward>), tensor([5.0038], grad_fn=<ViewBackward>), tensor([4.5247], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[0.0575, 0.0575, 0.0575, 0.0575, 0.0575]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.0962e+00, 4.3449e+00, 3.7807e+00, -9.9946e+03, 4.9592e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ -9994.8467, -9995.5977, -9996.1621, -19994.5352, -9994.9834]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.9143], grad_fn=<ViewBackward>), tensor([5.0038], grad_fn=<ViewBackward>), tensor([4.5247], grad_fn=<ViewBackward>), tensor([-9993.8867], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.4256, -0.4256, -0.4256, -0.4256, -0.4256]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.0962e+00, 4.3449e+00, 3.7807e+00, -9.9946e+03, 4.9592e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 4.1734e+00, 5.3883e+00, 3.3926e+00, -9.9950e+03, -9.9955e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([5.9143], grad_fn=<ViewBackward>), tensor([5.0038], grad_fn=<ViewBackward>), tensor([4.5247], grad_fn=<ViewBackward>), tensor([-9993.8867], grad_fn=<ViewBackward>), tensor([5.7478], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 5.9143e+00, 5.0038e+00, 4.5247e+00, -9.9939e+03, 5.7478e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.0251, 0.0251, 0.0251, 0.0251, 0.0251]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.9143e+00, 5.0038e+00, 4.5247e+00, -9.9939e+03, 5.7478e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 5.0220e+00, 6.0151e+00, 4.9874e+00, -9.9939e+03, -9.9942e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([6.5622], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.2328, 0.2328, 0.2328, 0.2328, 0.2328]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.9143e+00, 5.0038e+00, 4.5247e+00, -9.9939e+03, 5.7478e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 4.4784e+00, 2.8243e+00, 5.4060e+00, -9.9931e+03, -9.9940e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([6.5622], grad_fn=<ViewBackward>), tensor([5.7920], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.4197, -0.4197, -0.4197, -0.4197, -0.4197]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.9143e+00, 5.0038e+00, 4.5247e+00, -9.9939e+03, 5.7478e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 4.0544e+00, 4.4565e+00, 3.9168e+00, -9.9927e+03, -9.9947e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([6.5622], grad_fn=<ViewBackward>), tensor([5.7920], grad_fn=<ViewBackward>), tensor([5.2683], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[0.1857, 0.1857, 0.1857, 0.1857, 0.1857]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.9143e+00, 5.0038e+00, 4.5247e+00, -9.9939e+03, 5.7478e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ -9993.9004, -9994.8105, -9995.2900, -19993.7012, -9994.0664]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([6.5622], grad_fn=<ViewBackward>), tensor([5.7920], grad_fn=<ViewBackward>), tensor([5.2683], grad_fn=<ViewBackward>), tensor([-9992.9844], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.1530, -0.1530, -0.1530, -0.1530, -0.1530]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 5.9143e+00, 5.0038e+00, 4.5247e+00, -9.9939e+03, 5.7478e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 5.2642e+00, 6.3199e+00, 4.4093e+00, -9.9940e+03, -9.9944e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([6.5622], grad_fn=<ViewBackward>), tensor([5.7920], grad_fn=<ViewBackward>), tensor([5.2683], grad_fn=<ViewBackward>), tensor([-9992.9844], grad_fn=<ViewBackward>), tensor([6.7226], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 6.5622e+00, 5.7920e+00, 5.2683e+00, -9.9930e+03, 6.7226e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.4723, 0.4723, 0.4723, 0.4723, 0.4723]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 6.5622e+00, 5.7920e+00, 5.2683e+00, -9.9930e+03, 6.7226e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 6.1171e+00, 7.2505e+00, 6.1781e+00, -9.9926e+03, -9.9928e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([7.7598], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.2881, 0.2881, 0.2881, 0.2881, 0.2881]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 6.5622e+00, 5.7920e+00, 5.2683e+00, -9.9930e+03, 6.7226e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 5.1816e+00, 3.6678e+00, 6.2048e+00, -9.9921e+03, -9.9930e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([7.7598], grad_fn=<ViewBackward>), tensor([6.5684], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.5325, -0.5325, -0.5325, -0.5325, -0.5325]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 6.5622e+00, 5.7920e+00, 5.2683e+00, -9.9930e+03, 6.7226e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 4.5895e+00, 5.1319e+00, 4.5475e+00, -9.9919e+03, -9.9938e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([7.7598], grad_fn=<ViewBackward>), tensor([6.5684], grad_fn=<ViewBackward>), tensor([5.8922], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[5.0604e-05, 5.0604e-05, 5.0604e-05, 5.0604e-05, 5.0604e-05]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 6.5622e+00, 5.7920e+00, 5.2683e+00, -9.9930e+03, 6.7226e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ -9993.4375, -9994.2080, -9994.7314, -19992.9844, -9993.2773]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([7.7598], grad_fn=<ViewBackward>), tensor([6.5684], grad_fn=<ViewBackward>), tensor([5.8922], grad_fn=<ViewBackward>), tensor([-9992.3691], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.2954, -0.2954, -0.2954, -0.2954, -0.2954]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 6.5622e+00, 5.7920e+00, 5.2683e+00, -9.9930e+03, 6.7226e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 5.7697e+00, 6.9656e+00, 5.0104e+00, -9.9932e+03, -9.9936e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([7.7598], grad_fn=<ViewBackward>), tensor([6.5684], grad_fn=<ViewBackward>), tensor([5.8922], grad_fn=<ViewBackward>), tensor([-9992.3691], grad_fn=<ViewBackward>), tensor([7.3330], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 7.7598e+00, 6.5684e+00, 5.8922e+00, -9.9924e+03, 7.3330e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.4129, 0.4129, 0.4129, 0.4129, 0.4129]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 7.7598e+00, 6.5684e+00, 5.8922e+00, -9.9924e+03, 7.3330e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 7.2553e+00, 7.9676e+00, 6.7427e+00, -9.9920e+03, -9.9923e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([8.5466], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.2848, 0.2848, 0.2848, 0.2848, 0.2848]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 7.7598e+00, 6.5684e+00, 5.8922e+00, -9.9924e+03, 7.3330e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 6.3759e+00, 4.4408e+00, 6.8253e+00, -9.9915e+03, -9.9924e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([8.5466], grad_fn=<ViewBackward>), tensor([7.3735], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.4398, -0.4398, -0.4398, -0.4398, -0.4398]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 7.7598e+00, 6.5684e+00, 5.8922e+00, -9.9924e+03, 7.3330e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 5.8798e+00, 6.0010e+00, 5.2641e+00, -9.9912e+03, -9.9931e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([8.5466], grad_fn=<ViewBackward>), tensor([7.3735], grad_fn=<ViewBackward>), tensor([6.8616], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[0.0043, 0.0043, 0.0043, 0.0043, 0.0043]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 7.7598e+00, 6.5684e+00, 5.8922e+00, -9.9924e+03, 7.3330e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ -9992.2363, -9993.4277, -9994.1035, -19992.3652, -9992.6631]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([8.5466], grad_fn=<ViewBackward>), tensor([7.3735], grad_fn=<ViewBackward>), tensor([6.8616], grad_fn=<ViewBackward>), tensor([-9991.4893], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.3557, -0.3557, -0.3557, -0.3557, -0.3557]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 7.7598e+00, 6.5684e+00, 5.8922e+00, -9.9924e+03, 7.3330e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 6.9069e+00, 7.6817e+00, 5.5740e+00, -9.9927e+03, -9.9930e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([8.5466], grad_fn=<ViewBackward>), tensor([7.3735], grad_fn=<ViewBackward>), tensor([6.8616], grad_fn=<ViewBackward>), tensor([-9991.4893], grad_fn=<ViewBackward>), tensor([8.1406], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 8.5466e+00, 7.3735e+00, 6.8616e+00, -9.9915e+03, 8.1406e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
" one feat: torch.Size([5])\n",
"--------------------------------------------------\n",
"next_tag:: 0\n",
"emit_score: tensor([[0.0517, 0.0517, 0.0517, 0.0517, 0.0517]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-9.1739e-01, 9.8618e-01, 4.3756e-01, -6.4480e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 8.5466e+00, 7.3735e+00, 6.8616e+00, -9.9915e+03, 8.1406e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 7.6809e+00, 8.4114e+00, 7.3508e+00, -9.9915e+03, -9.9918e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([9.0146], grad_fn=<ViewBackward>)] 1\n",
"next_tag:: 1\n",
"emit_score: tensor([[0.3364, 0.3364, 0.3364, 0.3364, 0.3364]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.6687e+00, -2.4124e+00, 6.4837e-01, 5.7270e-01, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 8.5466e+00, 7.3735e+00, 6.8616e+00, -9.9915e+03, 8.1406e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 7.2143e+00, 5.2976e+00, 7.8464e+00, -9.9906e+03, -9.9915e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([9.0146], grad_fn=<ViewBackward>), tensor([8.3224], grad_fn=<ViewBackward>)] 2\n",
"next_tag:: 2\n",
"emit_score: tensor([[-0.4075, -0.4075, -0.4075, -0.4075, -0.4075]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-1.4402e+00, -1.2760e-01, -1.8822e-01, 1.6163e+00, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 8.5466e+00, 7.3735e+00, 6.8616e+00, -9.9915e+03, 8.1406e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 6.6989e+00, 6.8384e+00, 6.2658e+00, -9.9903e+03, -9.9923e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([9.0146], grad_fn=<ViewBackward>), tensor([8.3224], grad_fn=<ViewBackward>), tensor([7.7279], grad_fn=<ViewBackward>)] 3\n",
"next_tag:: 3\n",
"emit_score: tensor([[0.1421, 0.1421, 0.1421, 0.1421, 0.1421]], grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-10000., -10000., -10000., -10000., -10000.]], grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 8.5466e+00, 7.3735e+00, 6.8616e+00, -9.9915e+03, 8.1406e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ -9991.3115, -9992.4854, -9992.9971, -19991.3457, -9991.7178]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([9.0146], grad_fn=<ViewBackward>), tensor([8.3224], grad_fn=<ViewBackward>), tensor([7.7279], grad_fn=<ViewBackward>), tensor([-9990.5410], grad_fn=<ViewBackward>)] 4\n",
"next_tag:: 4\n",
"emit_score: tensor([[-0.5091, -0.5091, -0.5091, -0.5091, -0.5091]],\n",
" grad_fn=<ExpandBackward>) torch.Size([1, 5])\n",
"trans_score: tensor([[-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"forward_var: tensor([[ 8.5466e+00, 7.3735e+00, 6.8616e+00, -9.9915e+03, 8.1406e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"next_tag_var: tensor([[ 7.5404e+00, 8.3334e+00, 6.3899e+00, -9.9919e+03, -9.9924e+03]],\n",
" grad_fn=<AddBackward0>) torch.Size([1, 5])\n",
"alphas_t: [tensor([9.0146], grad_fn=<ViewBackward>), tensor([8.3224], grad_fn=<ViewBackward>), tensor([7.7279], grad_fn=<ViewBackward>), tensor([-9990.5410], grad_fn=<ViewBackward>), tensor([8.8007], grad_fn=<ViewBackward>)] 5\n",
"forward_var: tensor([[ 9.0146e+00, 8.3224e+00, 7.7279e+00, -9.9905e+03, 8.8007e+00]],\n",
" grad_fn=<ViewBackward>) torch.Size([1, 5])\n",
"self.transitions[self.tag_to_ix[STOP_TAG] 4 tensor([-4.9711e-01, 1.4690e+00, 3.7535e-02, 6.5826e-02, -1.0000e+04],\n",
" grad_fn=<SelectBackward>)\n",
"loss: tensor([15.9027], grad_fn=<SubBackward0>)\n",
"lstm_out: torch.Size([10, 1, 4])\n",
"lstm_feats: torch.Size([10, 5])\n",
"训练后: ['长', '城', '位', '于', '北', '京', '市', '延', '庆', '县'] (tensor(5.0174), [2, 1, 2, 1, 2, 1, 2, 1, 2, 1])\n"
]
}
],
"source": [
"# 训练前检查预测结果\n",
"with torch.no_grad():\n",
" precheck_sent = prepare_sequence(training_data[0][0], word_to_ix)\n",
" precheck_tags = torch.tensor([tag_to_ix[t] for t in training_data[0][1]], dtype=torch.long)\n",
" print(\"训练前:\", training_data[0][0], model(precheck_sent))\n",
"\n",
"\n",
"# 通常不会训这么多epochs, 这是demo数据\n",
"# for epoch in range(300): \n",
"for sentence, tags in training_data:\n",
" # 第一步: 需要记住的是Pytorch会累积梯度\n",
" # 我们需要在每次实例之前把它们清除\n",
" # ['the', 'wall', 'street', 'journal', 'reported', 'today', 'that', 'apple', 'corporation', 'made', 'money'] \n",
" # ['B', 'I', 'I', 'I', 'O', 'O', 'O', 'B', 'I', 'O', 'O']\n",
" model.zero_grad()\n",
"\n",
" # 第二步: 为我们的网络准备好输入, 即把它们转变成单词索引变量 (Variables)\n",
" sentence_in = prepare_sequence(sentence, word_to_ix)\n",
" targets = torch.tensor([tag_to_ix[t] for t in tags], dtype=torch.long)\n",
" print(sentence_in)\n",
" # 第三步: 运行前向传递\n",
" # 负对数似然\n",
" loss = model.neg_log_likelihood(sentence_in, targets)\n",
" print(\"loss:\", loss)\n",
" break\n",
" # 第四步: 计算损失, 梯度以及使用 optimizer.step() 来更新参数\n",
" loss.backward()\n",
" optimizer.step()\n",
"\n",
"# 在训练之后检查预测结果\n",
"with torch.no_grad():\n",
" precheck_sent = prepare_sequence(training_data[0][0], word_to_ix)\n",
" print(\"训练后:\", training_data[0][0], model(precheck_sent))"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([0.1903, 0.9510, 0.7418, 0.6104, 0.4461])"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feat = torch.rand(5)\n",
"feat"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.7418, 0.7418, 0.7418, 0.7418, 0.7418]])"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feat[2].view(1, -1).expand(1, 5)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "expected Tensor as element 0 in argument 0, but got int",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-47-b7e543b238ee>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m: expected Tensor as element 0 in argument 0, but got int"
]
}
],
"source": [
"# 使用数值上稳定的方法为前向算法计算指数和的对数\n",
"\n",
"def log_sum_exp(vec):\n",
" max_score = vec[0, argmax(vec)]\n",
" max_score_broadcast = max_score.view(1, -1).expand(1, vec.size()[1])\n",
" return max_score + \\\n",
" torch.log(torch.sum(torch.exp(vec - max_score_broadcast)))"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.9307, 0.8109, 0.4847, 0.2767, 0.5331]])"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vec = torch.rand(1,5)\n",
"vec"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(0.9307)"
]
},
"execution_count": 103,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"max_score = vec[0, argmax(vec)]\n",
"max_score"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.9307, 0.9307, 0.9307, 0.9307, 0.9307]])"
]
},
"execution_count": 104,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"max_score_broadcast = max_score.view(1, -1).expand(1, vec.size()[1])\n",
"max_score_broadcast"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[ 0.0000, -0.1198, -0.4460, -0.6540, -0.3975]])"
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vec - max_score_broadcast"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(1.3135)"
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_ = torch.log(torch.sum(torch.exp(vec - max_score_broadcast)))\n",
"x_"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(2.2442)"
]
},
"execution_count": 107,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"max_score + x_"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(2.2442)"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.log(torch.sum(torch.exp(vec)))"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.8894, 0.8167, 0.2974, 0.3956, 0.6985]])"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_t = torch.rand(1,5)\n",
"x_t"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor(2.1582) tensor(2.1582)\n"
]
}
],
"source": [
"print(log_sum_exp(x_t), torch.log(torch.sum(torch.exp(x_t))))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[2.1000, 2.2000]])"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.cat([torch.tensor(2.1).view(1), torch.tensor(2.2).view(1)]).view(1, -1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"_, y = torch.max(x, 1)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0, 1, 1, 0],\n",
" [2, 0, 0, 1]])"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"ename": "RuntimeError",
"evalue": "The expanded size of the tensor (3) must match the existing size (32) at non-singleton dimension 1. Target sizes: [1, 3]. Tensor sizes: [1, 32]",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-30-7e48ce564efd>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mview\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexpand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mRuntimeError\u001b[0m: The expanded size of the tensor (3) must match the existing size (32) at non-singleton dimension 1. Target sizes: [1, 3]. Tensor sizes: [1, 32]"
]
}
],
"source": [
"x[0, y].view(1, -1).expand(1, x.size()[1])"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"self.transitions: Parameter containing:\n",
"tensor([[-2.0531, 0.1550, -0.7984, -0.7743, 1.3765],\n",
" [ 0.3320, 0.0276, -1.6227, 0.3256, -0.3506],\n",
" [-0.1191, -0.0183, 0.9328, -1.5924, 1.8704],\n",
" [ 0.0952, -0.8484, 0.4585, -0.6996, 0.0129],\n",
" [ 0.1481, 0.7436, -0.9027, -1.5715, -0.9465]], requires_grad=True)\n",
"self.transitions ------>: Parameter containing:\n",
"tensor([[-2.0531e+00, 1.5505e-01, -7.9837e-01, -7.7434e-01, -1.0000e+04],\n",
" [ 3.3201e-01, 2.7574e-02, -1.6227e+00, 3.2563e-01, -1.0000e+04],\n",
" [-1.1905e-01, -1.8328e-02, 9.3275e-01, -1.5924e+00, -1.0000e+04],\n",
" [-1.0000e+04, -1.0000e+04, -1.0000e+04, -1.0000e+04, -1.0000e+04],\n",
" [ 1.4810e-01, 7.4357e-01, -9.0270e-01, -1.5715e+00, -1.0000e+04]],\n",
" requires_grad=True)\n"
]
}
],
"source": [
"transitions = nn.Parameter(torch.randn(5, 5))\n",
" \n",
"print(\"self.transitions:\", transitions)\n",
"\n",
"# These two statements enforce the constraint that we never transfer\n",
"# to the start tag and we never transfer from the stop tag\n",
"transitions.data[3, :] = -10000\n",
"transitions.data[:, 4] = -10000\n",
"print(\"self.transitions ------>:\", transitions)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[-10000., -10000., -10000., -10000., -10000.]])"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.full((1, 5), -10000.)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"lstm_out.view(len(sentence), self.hidden_dim)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"x1 = torch.randn(10, 1, 4)\n",
"x2 = torch.randn(2, 1, 2)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([10, 1, 4]), torch.Size([2, 1, 2]))"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x1.size(), x2.size()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([10, 4])"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x1.view(10, 4).size()"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [],
"source": [
"x_one = torch.tensor(0.2)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(0.2000)"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_one"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.2000, 0.2000, 0.2000, 0.2000, 0.2000]])"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_one.view(1, -1).expand(1, 5)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
================================================
FILE: P000CheatSheet/Matrix_multiplication.ipynb
================================================
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2, 3)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = np.array([[0,1,0],\n",
" [0,0,1]])\n",
"x.shape"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3, 4)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"W = np.array([[1,2,3,4],\n",
" [2,2,2,2],\n",
" [5,5,5,5]])\n",
"W.shape"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[2, 2, 2, 2],\n",
" [5, 5, 5, 5]])"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x.dot(W) # 第r行乘以c列得到新矩阵的r行,c列。行乘每列。"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
================================================
FILE: P000CheatSheet/Untitled.ipynb
================================================
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import torch"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"?torch.Tensor.scatter_add_"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"x = torch.rand(2, 5)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.5788, 0.9383, 0.4485, 0.3223, 0.4562],\n",
" [0.1863, 0.9070, 0.9751, 0.5211, 0.4711]])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"b = torch.ones(3, 5)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[1., 1., 1., 1., 1.],\n",
" [1., 1., 1., 1., 1.],\n",
" [1., 1., 1., 1., 1.]])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[1.5788, 1.9070, 1.9751, 1.3223, 1.4562],\n",
" [1.0000, 1.9383, 1.0000, 1.5211, 1.0000],\n",
" [1.1863, 1.0000, 1.4485, 1.0000, 1.4711]])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b.scatter_add(0, torch.tensor([[0, 1, 2, 0, 0], [2, 0, 0, 1, 2]]), x)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[1.5788, 1.9070, 1.9751, 1.3223, 1.4562],\n",
" [1.0000, 1.9383, 1.0000, 1.5211, 1.0000],\n",
" [1.1863, 1.0000, 1.4485, 1.0000, 1.4711]])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b.scatter_add(0, torch.tensor([[0, 1, 2, 0, 0], [2, 0, 0, 1, 2]]), x)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
================================================
FILE: P000CheatSheet/pack_padded_and_pad_packed.ipynb
================================================
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## pack_padded_sequence\n",
"- https://pytorch.org/docs/1.0.1/nn.html#torch.nn.utils.rnn.pack_padded_sequence\n",
"- 在使用深度学习特别是LSTM进行文本分析时,经常会遇到文本长度不一样的情况,此时就需要对同一个batch中的不同文本使用padding的方式进行文本长度对齐,方便将训练数据输入到LSTM模型进行训练,同时为了保证模型训练的精度,应该同时告诉LSTM相关padding的情况,此时,pytorch中的pack_padded_sequence就有了用武之地。\n",
"- 通常pading的位置向量都是0,我们需要使用pack_padded_sequence() 把数据压紧,即去掉pading的部分,减少冗余。然后再输入网络中,如lstm等。通过网络后的结果也是压紧的,需要通过pad_packed_sequence()还原。\n",
"- torch.nn.utils.rnn.pack_padded_sequence(input, lengths, batch_first=False)\n",
"```\n",
"input (Tensor) – padded batch of variable length sequences.\n",
"lengths (Tensor) – list of sequences lengths of each batch element.\n",
"batch_first (bool, optional) – if True, the input is expected in B x T x * format.\n",
"```\n",
"- pad_packed_sequence 解压"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torch.nn as nn\n",
"import torch.nn.utils as utils\n",
"from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.0.1\n"
]
}
],
"source": [
"print(torch.__version__)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"# 定义一个双向lstm网络层\n",
"lstm = nn.LSTM(4, 100, num_layers=1, batch_first=True, bidirectional=True) "
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([4, 3, 4])"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 定义一个有padding的序列数据,也就是有冗余的0\n",
"x = torch.tensor([[[1,2,3,4],\n",
" [2,3,4,5],\n",
" [2,5,6,0]],\n",
" [[1,2,1,1],\n",
" [1,6,7,9],\n",
" [0,0,0,0]],\n",
" [[1,2,3,4],\n",
" [1,1,1,1],\n",
" [0,0,0,0]],\n",
" [[1,2,3,4],\n",
" [0,0,0,0],\n",
" [0,0,0,0]],\n",
" ])\n",
"x = x.float()\n",
"x.size()"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PackedSequence(data=tensor([[1., 2., 3., 4.],\n",
" [1., 2., 1., 1.],\n",
" [1., 2., 3., 4.],\n",
" [1., 2., 3., 4.],\n",
" [2., 3., 4., 5.],\n",
" [1., 6., 7., 9.],\n",
" [1., 1., 1., 1.],\n",
" [2., 5., 6., 0.]]), batch_sizes=tensor([4, 3, 1]))"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 压紧数据,去掉冗余\n",
"packed = pack_padded_sequence(x, torch.tensor([3, 2, 2,1]), batch_first=True) # 打包,压缩\n",
"packed"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PackedSequence(data=tensor([[-0.1277, -0.0269, -0.0070, ..., -0.0997, 0.0827, 0.0156],\n",
" [-0.0272, -0.0503, -0.0239, ..., -0.0778, 0.0617, -0.0288],\n",
" [-0.1277, -0.0269, -0.0070, ..., -0.0498, 0.0694, 0.0405],\n",
" ...,\n",
" [-0.2541, -0.0296, -0.0304, ..., -0.0526, 0.0918, 0.0056],\n",
" [-0.0754, -0.0565, -0.0133, ..., -0.0139, 0.0202, 0.0313],\n",
" [-0.2212, -0.0844, -0.0038, ..., -0.0590, -0.0370, 0.0686]],\n",
" grad_fn=<CatBackward>), batch_sizes=tensor([4, 3, 1]))"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 通过lstm进行计算\n",
"output, hidden = lstm(packed)\n",
"# 得到的结果也是压紧的\n",
"output"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"# 解压\n",
"encoder_outputs, lenghts = pad_packed_sequence(output, batch_first=True) # 解包"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[-0.1277, -0.0269, -0.0070, ..., -0.0997, 0.0827, 0.0156],\n",
" [-0.1971, -0.0458, -0.0240, ..., -0.0674, 0.0357, 0.0496],\n",
" [-0.2212, -0.0844, -0.0038, ..., -0.0590, -0.0370, 0.0686]],\n",
"\n",
" [[-0.0272, -0.0503, -0.0239, ..., -0.0778, 0.0617, -0.0288],\n",
" [-0.2541, -0.0296, -0.0304, ..., -0.0526, 0.0918, 0.0056],\n",
" [ 0.0000, 0.0000, 0.0000, ..., 0.0000, 0.0000, 0.0000]],\n",
"\n",
" [[-0.1277, -0.0269, -0.0070, ..., -0.0498, 0.0694, 0.0405],\n",
" [-0.0754, -0.0565, -0.0133, ..., -0.0139, 0.0202, 0.0313],\n",
" [ 0.0000, 0.0000, 0.0000, ..., 0.0000, 0.0000, 0.0000]],\n",
"\n",
" [[-0.1277, -0.0269, -0.0070, ..., -0.0408, 0.0545, 0.0386],\n",
" [ 0.0000, 0.0000, 0.0000, ..., 0.0000, 0.0000, 0.0000],\n",
" [ 0.0000, 0.0000, 0.0000, ..., 0.0000, 0.0000, 0.0000]]],\n",
" grad_fn=<TransposeBackward0>)"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"encoder_outputs"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([4, 3, 200])"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"encoder_outputs.size() # size: [3, 3, 200] 双向的,所以是200维度"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([4, 3, 200])"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"encoder_outputs = encoder_outputs.contiguous()\n",
"encoder_outputs.size()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([12, 200])"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature = encoder_outputs.view(-1, 200)\n",
"feature.size()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([12, 200])"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"line = nn.Linear(200,200, bias=False)\n",
"y = line(feature)\n",
"y.size()"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([3, 2, 2, 1])"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lenghts"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## 来看下双向lstm的输出\n",
"len(hidden) # 双向lstm 结果是2 "
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([2, 4, 100])"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"h, c = hidden\n",
"h.size()"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([2, 4, 100])"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c.size()"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([4, 200])"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"inp = h.transpose(0, 1).contiguous().view(-1, 200) # view就是reshape\n",
"inp.size()"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [],
"source": [
"# 定义一个单向lstm网络层\n",
"lstm2 = nn.LSTM(4, 100, num_layers=1, batch_first=True) "
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [],
"source": [
"out, hid = lstm2(x)"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(hid)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([1, 4, 100])"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hid[0].size()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"## 有必要了解一下lstm的输出结果"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
================================================
FILE: P000CheatSheet/posEmbeding.ipynb
================================================
{
"cells": [
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import math"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([5000, 512])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"max_len = 5000\n",
"d_model = 512\n",
"pe = torch.zeros(max_len, d_model)\n",
"pe.size()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" ...,\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.]])"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pe[:,0::2]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"position = torch.arange(0, max_len, 1.).unsqueeze(1)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'torch.FloatTensor'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"div_term = torch.exp(torch.arange(0, d_model, 2.0) * -(math.log(10000.0) / d_model))\n",
"div_term.type()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'torch.FloatTensor'"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"position.type()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([5000, 512])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pe[:, 0::2] = torch.sin(position * div_term)\n",
"pe[:, 1::2] = torch.cos(position * div_term)\n",
"pe.size()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([1, 5000, 512])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pe = pe.unsqueeze(0)\n",
"pe.size()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
================================================
FILE: P000CheatSheet/py-rouge.ipynb
================================================
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import rouge\n",
"from rouge import Rouge"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"a = [\"i am a student from xx school\"] # 预测摘要 (可以是列表也可以是句子)\n",
"b = [\"i am a student from school on china\"] #真实摘要\n",
"\n",
"rouge_obj = Rouge()\n",
"rouge_score = rouge_obj.get_scores(a, b)\n",
"# print(rouge_score[0][\"rouge-1\"])\n",
"# print(rouge_score[0][\"rouge-2\"])\n",
"# print(rouge_score[0][\"rouge-l\"])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{}\n"
]
}
],
"source": [
"print(rouge_score)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def prepare_results(p, r, f):\n",
" return '\\t{}:\\t{}: {:5.2f}\\t{}: {:5.2f}\\t{}: {:5.2f}'.format(metric, 'P', 100.0 * p, 'R', 100.0 * r, 'F1', 100.0 * f)\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Evaluation with Avg\n",
"\trouge-1:\tP: 15.05\tR: 13.59\tF1: 14.29\n",
"\trouge-2:\tP: 0.00\tR: 0.00\tF1: 0.00\n",
"\trouge-3:\tP: 0.00\tR: 0.00\tF1: 0.00\n",
"\trouge-4:\tP: 0.00\tR: 0.00\tF1: 0.00\n",
"\trouge-l:\tP: 16.88\tR: 15.50\tF1: 16.16\n",
"\trouge-w:\tP: 8.29\tR: 4.04\tF1: 5.43\n",
"\n",
"Evaluation with Best\n",
"\trouge-1:\tP: 15.05\tR: 13.59\tF1: 14.29\n",
"\trouge-2:\tP: 0.00\tR: 0.00\tF1: 0.00\n",
"\trouge-3:\tP: 0.00\tR: 0.00\tF1: 0.00\n",
"\trouge-4:\tP: 0.00\tR: 0.00\tF1: 0.00\n",
"\trouge-l:\tP: 16.88\tR: 15.50\tF1: 16.16\n",
"\trouge-w:\tP: 8.29\tR: 4.04\tF1: 5.43\n",
"\n",
"Evaluation with Individual\n",
"\tHypothesis #0 & Reference #0: \n",
"\t\trouge-1:\tP: 15.05\tR: 13.59\tF1: 14.29\n",
"\n",
"\tHypothesis #0 & Reference #0: \n",
"\t\trouge-2:\tP: 0.00\tR: 0.00\tF1: 0.00\n",
"\n",
"\tHypothesis #0 & Reference #0: \n",
"\t\trouge-3:\tP: 0.00\tR: 0.00\tF1: 0.00\n",
"\n",
"\tHypothesis #0 & Reference #0: \n",
"\t\trouge-4:\tP: 0.00\tR: 0.00\tF1: 0.00\n",
"\n",
"\tHypothesis #0 & Reference #0: \n",
"\t\trouge-l:\tP: 16.88\tR: 15.50\tF1: 16.16\n",
"\n",
"\tHypothesis #0 & Reference #0: \n",
"\t\trouge-w:\tP: 8.29\tR: 4.04\tF1: 5.43\n",
"\n",
"\n"
]
}
],
"source": [
"for aggregator in ['Avg', 'Best', 'Individual']:\n",
" print('Evaluation with {}'.format(aggregator))\n",
" apply_avg = aggregator == 'Avg'\n",
" apply_best = aggregator == 'Best'\n",
"\n",
" evaluator = rouge.Rouge(metrics=['rouge-n', 'rouge-l', 'rouge-w'],\n",
" max_n=4,\n",
" limit_length=True,\n",
" length_limit=100,\n",
" length_limit_type='words',\n",
" apply_avg=apply_avg,\n",
" apply_best=apply_best,\n",
" alpha=0.5, # Default F1_score\n",
" weight_factor=1.2,\n",
" stemming=True)\n",
"\n",
"\n",
"# hypothesis_1 = \"我 是 中国人。\\n我 来自 中国 北京。\\n\"\n",
"# references_1 = [\"我 来自 北京。\\n\", \"我 是 中国人。\\n\",\n",
"# ]\n",
"\n",
" hypothesis_2 = \"China 's government said Thursday that two prominent dissidents arrested this week are suspected of endangering national security _ the clearest sign yet Chinese leaders plan to quash a would-be opposition party .\\nOne leader of a suppressed new political party will be tried on Dec. 17 on a charge of colluding with foreign enemies of China '' to incite the subversion of state power , '' according to court documents given to his wife on Monday .\\nWith attorneys locked up , harassed or plain scared , two prominent dissidents will defend themselves against charges of subversion Thursday in China 's highest-profile dissident trials in two years .\\n\"\n",
" references_2 = \"Hurricane Mitch, category 5 hurricane, brought widespread death and destruction to Central American.\\nEspecially hard hit was Honduras where an estimated 6,076 people lost their lives.\\nThe hurricane, which lingered off the coast of Honduras for 3 days before moving off, flooded large areas, destroying crops and property.\\nThe U.S. and European Union were joined by Pope John Paul II in a call for money and workers to help the stricken area.\\nPresident Clinton sent Tipper Gore, wife of Vice President Gore to the area to deliver much needed supplies to the area, demonstrating U.S. commitment to the recovery of the region.\\n\"\n",
"# hypothesis_2 = \"我 爱 中国。\\n\"\n",
"# references_2 = \"我 爱 你 中国。\\n\"\n",
" all_hypothesis = [hypothesis_2]\n",
" all_references = [references_2]\n",
"\n",
" scores = evaluator.get_scores(all_hypothesis, all_references)\n",
"\n",
" for metric, results in sorted(scores.items(), key=lambda x: x[0]):\n",
" if not apply_avg and not apply_best: # value is a type of list as we evaluate each summary vs each reference\n",
" for hypothesis_id, results_per_ref in enumerate(results):\n",
" nb_references = len(results_per_ref['p'])\n",
" for reference_id in range(nb_references):\n",
" print('\\tHypothesis #{} & Reference #{}: '.format(hypothesis_id, reference_id))\n",
" print('\\t' + prepare_results(results_per_ref['p'][reference_id], results_per_ref['r'][reference_id], results_per_ref['f'][reference_id]))\n",
" print()\n",
" else:\n",
" print(prepare_results(results['p'], results['r'], results['f']))\n",
" print()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"# 好像只能计算英文啊"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
================================================
FILE: P000CheatSheet/pytorch_nn_cheat_sheet.ipynb
================================================
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torch.nn as nn\n",
"from torch.autograd import Variable\n",
"import torch.nn.functional as F"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## nn.Embedding介绍\n",
"- [https://pytorch.org/docs/stable/nn.html](https://pytorch.org/docs/stable/nn.html)\n",
"----\n",
"- pytorch里面实现word embedding是通过一个函数来实现的:nn.Embedding。Embedding的作用就是将词语向量化,通常会将词语表示为一个连续箱梁。\n",
"- 官方介绍\n",
" - 一个简单的查找表,用于存储固定字典和大小的嵌入。\n",
" - 此模块通常用于存储单词嵌入并使用索引检索它们。模块的输入是索引列表,输出是相应的字嵌入。\n",
" \n",
"- CLASS torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2.0, scale_grad_by_freq=False, sparse=False, _weight=None)\n",
"\n",
"- 参数:\n",
" - num_embeddings (int) – 词典的大小,也就是词典有多少个词。比如你有一个30000的词典,这里就是30000.\n",
"\n",
" - embedding_dim (int) – the size of each embedding vector。将词语表示成embedding_dim维的向量。指定向量的维度。\n",
"\n",
" - padding_idx (int, optional) – If given, pads the output with the embedding vector at padding_idx (initialized to zeros) whenever it encounters the index.设置padding_idx后,padding_idx中的嵌入向量将初始化为全零。但是,请注意,之后可以修改该向量,例如,使用定制的初始化方法,从而改变用于填充输出的向量。嵌入中此向量的渐变始终为零。\n",
"\n",
" - max_norm (float, optional) – If given, each embedding vector with norm larger than max_norm is renormalized to have norm max_norm.\n",
" - norm_type (float, optional) – The p of the p-norm to compute for the max_norm option. Default 2.\n",
" - scale_grad_by_freq (boolean, optional) – If given, this will scale gradients by the inverse of frequency of the words in the mini-batch. Default False.\n",
" - sparse (bool, optional) – If True, gradient w.r.t. weight matrix will be a sparse tensor. See Notes for more details regarding sparse gradients.\n",
"- 看个例子吧"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor([[ 0.3746, -1.0797, -0.6317, -0.6281, -0.4120]],\n",
" grad_fn=<EmbeddingBackward>)\n"
]
}
],
"source": [
"# 定义一个词典:word2idx = {'hello': 0, 'world': 1, '!':2},每个单词我们需要用一个数字去表示它,这里对于hello这个词,用0来表示它。\n",
"word2idx = {'hello': 0, 'world': 1, '!':2}\n",
"\n",
"# 定义Embedding层,这里的3表示词典共有3个词,5表示5维度,其实也就是一个3x5的矩阵.\n",
"# 如果你有1000个词,每个词希望是100维,你就可以这样建立一个word embedding,nn.Embedding(1000, 100)。\n",
"# 这就相当于词语和表示词语的向量建立了一张表,想知道一个词的向量表示可以通过这张表去查。\n",
"embeds = nn.Embedding(3, 5)\n",
"\n",
"# 如何查询hello这个词的向量表示呢?\n",
"\n",
"# 通过词语在原来字典中的索引查词向量,hello的索引是0\n",
"hello_idx = torch.LongTensor([word2idx['hello']])\n",
"\n",
"# 特别注意这里需要一个Variable,因为我们需要访问nn.Embedding里面定义的元素,且word embeding算是神经网络里面的参数,所以我们需要定义Variable\n",
"hello_idx = Variable(hello_idx)\n",
"# 现在输入Variable格式的索引就可以查看词向量了\n",
"hello_embed = embeds(hello_idx)\n",
"\n",
"# 输出hello这个词的<初始词向量>\n",
"print(hello_embed)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 注意\n",
"- 注意这里的词向量的建立只是**初始的词向量**,并没有经过任何修改优化,我们需要建立神经网络通过learning修改word embedding里面的参数使得word embedding每一个词向量能够表示每一个不同的词。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## nn.LSTM"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"rnn = nn.LSTM(10, 20) "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"input_data = torch.randn(5, 3, 10) # seq_len, batch, input_size"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# h0 = torch.randn(1, 3, 20) # 初始化\n",
"# h0"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# c0 = torch.randn(1, 3, 20)\n",
"# c0"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"output, (hn, cn) = rnn(input_data)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([5, 3, 20])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"output.size()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[-0.1023, -0.2195, -0.3629, -0.0977, -0.1240, -0.1357, -0.2260, -0.0529,\n",
" 0.0173, 0.0663, 0.0418, -0.0313, -0.1414, 0.1390, 0.0395, -0.2833,\n",
" 0.0786, -0.0190, 0.0141, -0.0871],\n",
" [-0.0481, -0.1797, -0.0957, -0.0579, 0.0646, -0.1703, 0.0248, -0.1381,\n",
" -0.1028, 0.1341, 0.1645, 0.0634, -0.1689, 0.0230, -0.0375, -0.1674,\n",
" -0.0029, -0.0914, 0.0958, -0.0738],\n",
" [-0.0141, -0.0795, 0.0149, 0.0237, 0.0830, -0.2079, 0.2409, -0.0418,\n",
" -0.0247, 0.2118, 0.1507, -0.0559, -0.1114, -0.0887, -0.2693, -0.0222,\n",
" 0.0394, -0.0820, -0.0806, -0.0231]], grad_fn=<SelectBackward>)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"output[4]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[-0.1023, -0.2195, -0.3629, -0.0977, -0.1240, -0.1357, -0.2260,\n",
" -0.0529, 0.0173, 0.0663, 0.0418, -0.0313, -0.1414, 0.1390,\n",
" 0.0395, -0.2833, 0.0786, -0.0190, 0.0141, -0.0871],\n",
" [-0.0481, -0.1797, -0.0957, -0.0579, 0.0646, -0.1703, 0.0248,\n",
" -0.1381, -0.1028, 0.1341, 0.1645, 0.0634, -0.1689, 0.0230,\n",
" -0.0375, -0.1674, -0.0029, -0.0914, 0.0958, -0.0738],\n",
" [-0.0141, -0.0795, 0.0149, 0.0237, 0.0830, -0.2079, 0.2409,\n",
" -0.0418, -0.0247, 0.2118, 0.1507, -0.0559, -0.1114, -0.0887,\n",
" -0.2693, -0.0222, 0.0394, -0.0820, -0.0806, -0.0231]]],\n",
" grad_fn=<StackBackward>)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hn"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 结论\n",
"- 我们可以看到hn是最后一次输出,output是所有输出。因此output的最后一个元素和hn是一样的。\n",
"- cn是细胞状态tensor"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([1, 3, 20])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hn.size()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([1, 3, 20])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cn.size()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[-0.2094, -0.5293, -0.7267, -0.1446, -0.1959, -0.2274, -0.4356,\n",
" -0.1363, 0.0553, 0.1174, 0.1804, -0.1037, -0.3693, 0.3561,\n",
" 0.0795, -0.5906, 0.2023, -0.0374, 0.0280, -0.2041],\n",
" [-0.1044, -0.4315, -0.1768, -0.1072, 0.1064, -0.3795, 0.0522,\n",
" -0.3305, -0.2329, 0.2719, 0.3601, 0.1317, -0.4066, 0.0497,\n",
" -0.0728, -0.4711, -0.0061, -0.1587, 0.1639, -0.1596],\n",
" [-0.0240, -0.2553, 0.0266, 0.0601, 0.1633, -0.5237, 0.4116,\n",
" -0.0992, -0.0575, 0.3210, 0.2774, -0.1068, -0.2709, -0.1610,\n",
" -0.4528, -0.0570, 0.0676, -0.1944, -0.1193, -0.0365]]],\n",
" grad_fn=<StackBackward>)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cn"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"fc = nn.Linear(20, 20)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"out = fc(output)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([5, 3, 20])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"out.size()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([ 0.0896, -0.0571, -0.0152, -0.0691, -0.0199, -0.0406, 0.2308, -0.2142,\n",
" -0.1767, -0.0639, -0.0081, 0.1343, -0.1078, -0.2064, -0.1733, -0.1182,\n",
" 0.1361, -0.2758, 0.1620, 0.1076], grad_fn=<SelectBackward>)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"out[0][0]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"rnn2 = nn.LSTM(10, 20, batch_first=True) "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"# bacth,seq_len, word_vec_dim\n",
"input_data2 = torch.randn(32, 5, 10) # hc层size(layer_num, bacth, out_dim)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"out, (hn, cn) = rnn2(input_data2)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([32, 5, 20]) torch.Size([1, 32, 20]) torch.Size([1, 32, 20])\n"
]
}
],
"source": [
"print(out.size(), hn.size(), cn.size())"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"a = torch.randn(2).unsqueeze(0)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[-0.4607, -0.4461]])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 两个形状相同的tonsor相乘"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"a = torch.tensor([[1,2,3], \n",
" [2,3,4]])\n",
"b = torch.tensor([[2,2,2], \n",
" [2,2,1]])"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[2, 4, 6],\n",
" [4, 6, 4]])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = a*b\n",
"c"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[ 1.0323, 0.1239, 1.1077, 0.2164, 0.4767, 0.4025, 0.2399,\n",
" -0.1330, 0.5671, 0.1008],\n",
" [ 0.0843, 0.7463, 0.6705, 0.1488, 0.6736, -0.2464, -0.5746,\n",
" 0.6086, 0.9737, 0.0711],\n",
" [ 1.8035, 0.8987, -0.6655, -1.0680, -0.5026, 0.5141, 1.4208,\n",
" 0.2101, 0.4502, 1.3422],\n",
" [ 1.0504, 1.3057, 0.2206, -1.7455, -1.2488, -0.4145, 0.8532,\n",
" 0.8481, 0.6439, 0.8128],\n",
" [ 0.7198, 0.6862, 0.3618, 0.1609, -0.0922, -0.3626, 0.5601,\n",
" -0.0230, -1.4171, -0.9066]],\n",
"\n",
" [[ 1.2316, 0.4093, -0.0454, -0.0887, -0.0333, -0.4516, 0.8812,\n",
" 0.6673, -2.0286, 0.5245],\n",
" [-0.6719, -1.0660, 1.0303, -2.0076, -0.1587, -0.7049, -0.4192,\n",
" -1.6840, -0.0913, -0.8211],\n",
" [-0.0361, 1.6295, -0.2098, -0.5681, 0.6524, 0.3682, -1.0326,\n",
" 0.8690, -0.8374, -0.7785],\n",
" [-1.1685, -0.4528, 0.8089, -0.6248, -1.4823, 1.7067, 0.0343,\n",
" -0.1233, -0.4694, 0.7405],\n",
" [ 1.4695, -0.7846, 1.3884, 1.2469, 0.4381, -0.4211, 1.2470,\n",
" 1.1484, -1.1954, 1.2651]]])"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = torch.randn(2, 5, 10)\n",
"a"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([2, 5])"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = a.sum(2)\n",
"c.size()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[-0.1212, -1.1875, -0.8154, -0.2603, 0.1208],\n",
" [-1.7234, 0.9401, 0.5191, -1.1418, 0.0485],\n",
" [-0.5145, 0.5186, 0.4932, 0.5364, -0.8625]],\n",
"\n",
" [[-0.2743, -0.4564, 1.8824, 0.5533, 2.1877],\n",
" [-0.9605, 1.0729, 0.4791, -0.9585, -0.0132],\n",
" [-1.3529, -0.8772, 0.2921, -0.8205, -0.1080]]])"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = torch.randn([2,3,5])\n",
"x "
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[0, 0, 0, 0, 1],\n",
" [0, 1, 1, 0, 1],\n",
" [0, 1, 1, 1, 0]],\n",
"\n",
" [[0, 0, 1, 1, 1],\n",
" [0, 1, 1, 0, 0],\n",
" [0, 0, 1, 0, 0]]], dtype=torch.uint8)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mask = (x>0)\n",
"mask"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([0.1208, 0.9401, 0.5191, 0.0485, 0.5186, 0.4932, 0.5364, 1.8824, 0.5533,\n",
" 2.1877, 1.0729, 0.4791, 0.2921])"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d = x[mask] # 压扁成一个列表\n",
"d"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"import torch.nn.functional as F"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"s = F.logsigmoid(d)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(-0.4262)"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s.mean() # 得到一个数字"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(-1.1681)"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.log(1 - torch.sigmoid(d)).mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## nn.Parameter"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"?nn.Parameter"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([10])"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"embed_dim = 10\n",
"data = torch.randn(embed_dim)\n",
"data.size()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"u = nn.Parameter(data)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Parameter containing:\n",
"tensor([-0.6100, 0.1809, 0.7675, -0.5735, 0.1123, 0.4894, -0.8654, -1.0640,\n",
" -1.2618, -0.8684], requires_grad=True)"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"u"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[ 0.5720, -0.4873, -0.1925, -0.1972, -0.0626, 1.5768, 1.0680,\n",
" 1.2321, -0.4564, -0.0703],\n",
" [ 0.5284, -0.7402, 0.4011, 0.0832, -1.9947, -0.9723, 0.9434,\n",
" 0.4962, 0.3930, 0.5200],\n",
" [ 0.2165, 0.9300, 1.4055, -0.9435, -0.1495, -0.5030, 0.3633,\n",
" 0.9413, 1.4385, -0.7606],\n",
" [ 0.2950, 0.9037, -0.9711, 0.0556, -1.5093, -1.8391, -0.6188,\n",
" -1.2471, -0.8059, -0.6884],\n",
" [ 1.0337, -0.6484, 2.1221, 0.9859, 2.1802, -2.2094, -0.0289,\n",
" 0.8381, 0.3553, 0.2861],\n",
" [-0.1302, 1.4063, 0.4567, -1.1085, 1.9764, -0.1228, 0.9814,\n",
" 0.9537, -0.6450, 0.7175],\n",
" [-0.1446, -0.1117, 0.0594, -1.7827, -0.4155, -0.0715, 0.0213,\n",
" 0.7226, 0.6909, 1.2786],\n",
" [ 0.6332, 0.4564, -0.1636, 0.3665, 0.6061, -0.0314, -1.5227,\n",
" 0.0369, 1.3917, -0.5979]],\n",
"\n",
" [[-1.3836, -0.8652, -1.3644, -0.8995, -0.2949, 1.2752, 0.1303,\n",
" -0.1627, -0.0075, 0.5403],\n",
" [-0.6614, 0.1664, -1.5498, 0.5317, 0.2322, -1.9863, -1.3148,\n",
" 1.4275, 0.2129, -0.4953],\n",
" [ 0.8388, 1.4253, 0.0090, -0.3771, 0.9039, -0.7850, 1.3202,\n",
" -0.2476, -0.6281, -0.1383],\n",
" [ 0.6462, -1.8107, -1.2915, -2.1775, -0.3828, 1.3362, -2.3330,\n",
" -0.5165, -1.5412, 0.8136],\n",
" [ 0.2981, -1.2633, -0.5012, -0.6578, -1.3874, -0.8003, 0.6939,\n",
" -0.1877, -0.8000, 0.0059],\n",
" [ 1.6177, -0.0819, -1.4117, 0.1513, -0.7835, -0.4023, -0.5751,\n",
" 0.6236, 0.5185, -0.3257],\n",
" [-0.1068, -0.0104, -0.2874, 1.0380, 0.3855, 0.3236, -1.3724,\n",
" 1.6858, 0.5404, 0.6867],\n",
" [-1.1484, 0.4463, -0.0490, 0.8154, -1.3611, -1.0358, -1.0115,\n",
" -1.4956, -2.3987, -0.7667]],\n",
"\n",
" [[-0.7427, 0.3397, 1.4941, -0.3975, 0.6718, 1.2874, 0.5164,\n",
" 0.7475, 1.2911, -0.7312],\n",
" [ 0.5112, 0.2203, -0.3803, -0.5714, 1.2393, 0.8208, -0.9187,\n",
" -0.0765, 0.6135, -0.7404],\n",
" [ 1.2199, 0.1526, 0.9363, 1.3509, -0.4017, 0.6033, 1.9226,\n",
" 0.7188, 1.0180, -0.3175],\n",
" [-0.2175, 0.4603, -0.3155, -0.1717, -0.4508, -1.5037, -0.1207,\n",
" 0.4838, 0.7382, 1.0409],\n",
" [-0.9812, 0.3711, 0.3704, -0.9340, 0.1421, -1.5631, -1.3793,\n",
" -0.6578, -1.3985, -0.4181],\n",
" [-0.3646, -1.0626, 0.4232, 0.9070, -2.3748, 0.1342, -0.0346,\n",
" 0.3152, 0.8232, -1.2286],\n",
" [-0.4408, -0.4749, -0.8820, -0.4570, 0.7494, -0.8769, -0.9241,\n",
" -0.4344, 0.7485, -0.6219],\n",
" [ 1.4999, -0.0245, -0.8926, -0.4930, -0.1407, -1.3070, 1.9463,\n",
" -0.8084, 0.0198, -0.4131]],\n",
"\n",
" [[ 1.6712, 0.5194, 0.8257, -1.2828, -1.3533, 0.5400, 1.3997,\n",
" 2.2241, 0.3703, 0.0891],\n",
" [-0.1004, 0.3773, 2.5188, 0.2890, 0.9379, 0.7492, 0.9603,\n",
" -1.4914, 0.8701, -0.2691],\n",
" [ 0.0435, -0.1540, 0.3223, -1.1497, -0.4520, 0.3094, 0.3129,\n",
" 0.4398, -0.1206, 0.2182],\n",
" [-1.1895, -3.0451, 1.2849, -0.6265, -0.7783, 1.2033, -0.3295,\n",
" -1.4985, -1.9538, -0.5790],\n",
" [-1.2533, -1.2236, -0.6427, -0.5228, -0.6071, -1.0755, -0.3622,\n",
" -1.4241, -1.7820, 0.3037],\n",
" [-1.5930, -0.3212, -1.1160, -0.5363, -1.2299, -0.6331, -0.4287,\n",
" -0.5349, 0.2315, 0.8747],\n",
" [-0.2205, -0.3187, -0.6099, 1.1537, -0.7896, 0.6231, 0.2791,\n",
" -1.3267, -1.3005, 0.5643],\n",
" [ 1.7372, 0.3188, 0.6492, -0.5857, -0.2604, -0.4235, -1.3535,\n",
" 1.3899, 1.4772, 0.6812]]])"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"embed = torch.randn(4, 8, 10) #[batch, seq_len, embed]\n",
"embed"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([4, 8, 10])"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = u.repeat(embed.size(0), embed.size(1), 1)\n",
"x.size()"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[-0.2212, -0.4839, -0.1610, 0.2061, -0.2068, -0.0250, -0.2900, -0.0944],\n",
" [ 0.0531, -0.2761, -0.0455, 0.3600, -0.0608, -0.4872, -0.3845, 0.6251],\n",
" [ 0.0520, 0.1996, -0.5176, -0.5650, 0.6570, -0.0836, 0.0536, -0.3301],\n",
" [-0.3879, 0.2709, 0.0507, 0.6181, 0.4528, -0.0298, 0.2379, -0.4050]],\n",
" grad_fn=<DivBackward0>)"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cos = F.cosine_similarity(embed, x, dim=2)\n",
"cos"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.1154, 0.0888, 0.1226, 0.1769, 0.1171, 0.1404, 0.1077, 0.1310],\n",
" [0.1270, 0.0913, 0.1150, 0.1725, 0.1133, 0.0740, 0.0820, 0.2249],\n",
" [0.1307, 0.1515, 0.0739, 0.0705, 0.2393, 0.1141, 0.1309, 0.0892],\n",
" [0.0724, 0.1398, 0.1122, 0.1979, 0.1677, 0.1035, 0.1353, 0.0711]],\n",
" grad_fn=<SoftmaxBackward>)"
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"alpha = F.softmax(cos, dim=1) # 每个序列一行,每每行的每个元素代表对应的单词的权重\n",
"alpha"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor(0.0660, grad_fn=<MulBackward0>) tensor(-0.0562, grad_fn=<MulBackward0>)\n"
]
}
],
"source": [
"d = alpha.unsqueeze(2)\n",
"print(embed[0][0][0]*d[0][0][0],embed[0][0][1]*d[0][0][0])"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[ 0.0660, -0.0562, -0.0222, -0.0228, -0.0072, 0.1820, 0.1233,\n",
" 0.1422, -0.0527, -0.0081],\n",
" [ 0.0469, -0.0657, 0.0356, 0.0074, -0.1770, -0.0863, 0.0837,\n",
" 0.0440, 0.0349, 0.0462],\n",
" [ 0.0265, 0.1140, 0.1723, -0.1157, -0.0183, -0.0617, 0.0445,\n",
" 0.1154, 0.1763, -0.0932],\n",
" [ 0.0522, 0.1599, -0.1718, 0.0098, -0.2671, -0.3254, -0.1095,\n",
" -0.2207, -0.1426, -0.1218],\n",
" [ 0.1210, -0.0759, 0.2485, 0.1154, 0.2553, -0.2587, -0.0034,\n",
" 0.0981, 0.0416, 0.0335],\n",
" [-0.0183, 0.1975, 0.0641, -0.1557, 0.2776, -0.0173, 0.1378,\n",
" 0.1339, -0.0906, 0.1008],\n",
" [-0.0156, -0.0120, 0.0064, -0.1921, -0.0448, -0.0077, 0.0023,\n",
" 0.0779, 0.0744, 0.1378],\n",
" [ 0.0830, 0.0598, -0.0214, 0.0480, 0.0794, -0.0041, -0.1995,\n",
" 0.0048, 0.1823, -0.0783]],\n",
"\n",
" [[-0.1756, -0.1098, -0.1732, -0.1142, -0.0374, 0.1619, 0.0165,\n",
" -0.0207, -0.0010, 0.0686],\n",
" [-0.0604, 0.0152, -0.1416, 0.0486, 0.0212, -0.1814, -0.1201,\n",
" 0.1304, 0.0194, -0.0452],\n",
" [ 0.0965, 0.1640, 0.0010, -0.0434, 0.1040, -0.0903, 0.1519,\n",
" -0.0285, -0.0723, -0.0159],\n",
" [ 0.1115, -0.3124, -0.2228, -0.3757, -0.0661, 0.2306, -0.4025,\n",
" -0.0891, -0.2659, 0.1404],\n",
" [ 0.0338, -0.1431, -0.0568, -0.0745, -0.1572, -0.0907, 0.0786,\n",
" -0.0213, -0.0906, 0.0007],\n",
" [ 0.1196, -0.0061, -0.1044, 0.0112, -0.0580, -0.0298, -0.0425,\n",
" 0.0461, 0.0383, -0.0241],\n",
" [-0.0087, -0.0009, -0.0236, 0.0851, 0.0316, 0.0265, -0.1125,\n",
" 0.1382, 0.0443, 0.0563],\n",
" [-0.2583, 0.1004, -0.0110, 0.1834, -0.3062, -0.2330, -0.2275,\n",
" -0.3364, -0.5395, -0.1725]],\n",
"\n",
" [[-0.0970, 0.0444, 0.1952, -0.0519, 0.0878, 0.1682, 0.0675,\n",
" 0.0977, 0.1687, -0.0955],\n",
" [ 0.0774, 0.0334, -0.0576, -0.0866, 0.1877, 0.1243, -0.1392,\n",
" -0.0116, 0.0929, -0.1121],\n",
" [ 0.0902, 0.0113, 0.0692, 0.0999, -0.0297, 0.0446, 0.1421,\n",
" 0.0531, 0.0753, -0.0235],\n",
" [-0.0153, 0.0325, -0.0222, -0.0121, -0.0318, -0.1060, -0.0085,\n",
" 0.0341, 0.0520, 0.0734],\n",
" [-0.2348, 0.0888, 0.0886, -0.2235, 0.0340, -0.3740, -0.3301,\n",
" -0.1574, -0.3346, -0.1000],\n",
" [-0.0416, -0.1212, 0.0483, 0.1035, -0.2710, 0.0153, -0.0039,\n",
" 0.0360, 0.0939, -0.1402],\n",
" [-0.0577, -0.0622, -0.1154, -0.0598, 0.0981, -0.1148, -0.1209,\n",
" -0.0569, 0.0980, -0.0814],\n",
" [ 0.1338, -0.0022, -0.0796, -0.0440, -0.0125, -0.1166, 0.1736,\n",
" -0.0721, 0.0018, -0.0368]],\n",
"\n",
" [[ 0.1209, 0.0376, 0.0598, -0.0928, -0.0979, 0.0391, 0.1013,\n",
" 0.1609, 0.0268, 0.0064],\n",
" [-0.0140, 0.0528, 0.3522, 0.0404, 0.1312, 0.1048, 0.1343,\n",
" -0.2086, 0.1217, -0.0376],\n",
" [ 0.0049, -0.0173, 0.0362, -0.1290, -0.0507, 0.0347, 0.0351,\n",
" 0.0493, -0.0135, 0.0245],\n",
" [-0.2354, -0.6026, 0.2543, -0.1240, -0.1540, 0.2381, -0.0652,\n",
" -0.2965, -0.3866, -0.1146],\n",
" [-0.2102, -0.2052, -0.1078, -0.0877, -0.1018, -0.1804, -0.0608,\n",
" -0.2389, -0.2989, 0.0509],\n",
" [-0.1649, -0.0332, -0.1155, -0.0555, -0.1273, -0.0655, -0.0444,\n",
" -0.0554, 0.0240, 0.0906],\n",
" [-0.0298, -0.0431, -0.0825, 0.1561, -0.1068, 0.0843, 0.0378,\n",
" -0.1795, -0.1760, 0.0763],\n",
" [ 0.1236, 0.0227, 0.0462, -0.0417, -0.0185, -0.0301, -0.0963,\n",
" 0.0989, 0.1051, 0.0485]]], grad_fn=<MulBackward0>)"
]
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"embed*alpha.unsqueeze(2)"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[ 0.3618, 0.3213, 0.3114, -0.3055, 0.0978, -0.5791, 0.0793, 0.3957,\n",
" 0.2237, 0.0167],\n",
" [-0.1417, -0.2927, -0.7323, -0.2796, -0.4680, -0.2061, -0.6581, -0.1812,\n",
" -0.8672, 0.0082],\n",
" [-0.1451, 0.0247, 0.1265, -0.2745, 0.0626, -0.3589, -0.2194, -0.0770,\n",
" 0.2479, -0.5162],\n",
" [-0.4050, -0.7885, 0.4427, -0.3342, -0.5260, 0.2249, 0.0418, -0.6697,\n",
" -0.5975, 0.1450]], grad_fn=<SumBackward2>)"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y = torch.sum(embed*alpha.unsqueeze(2), dim=1)\n",
"y"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([4, 10])"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y.size()"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[ 0.3618, 0.3213, 0.3114, -0.3055, 0.0978, -0.5791, 0.0793, 0.3957,\n",
" 0.2237, 0.0167],\n",
" [-0.1417, -0.2927, -0.7323, -0.2796, -0.4680, -0.2061, -0.6581, -0.1812,\n",
" -0.8672, 0.0082],\n",
" [-0.1451, 0.0247, 0.1265, -0.2745, 0.0626, -0.3589, -0.2194, -0.0770,\n",
" 0.2479, -0.5162],\n",
" [-0.4050, -0.7885, 0.4427, -0.3342, -0.5260, 0.2249, 0.0418, -0.6697,\n",
" -0.5975, 0.1450]], grad_fn=<SqueezeBackward1>)"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y.squeeze(1)"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.4853],\n",
" [0.5154],\n",
" [0.4474],\n",
" [0.1978]], grad_fn=<AddmmBackward>)"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fx = nn.Linear(10,1)(y)\n",
"fx"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.6190],\n",
" [0.6261],\n",
" [0.6100],\n",
" [0.5493]], grad_fn=<SigmoidBackward>)"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"score = torch.sigmoid(fx) # 0-1之间的数\n",
"score"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[1.],\n",
" [1.],\n",
" [1.],\n",
" [1.]], grad_fn=<RoundBackward>)"
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.round(score) #返回相邻最近的整数,四舍五入"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## torch.nn.functional.cosine_similarity计算方法"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor([[ 0.3437, 0.3895, 1.4366],\n",
" [-3.1125, -0.4749, -0.6235]]) tensor([[-0.9672, 0.4503, -0.3470],\n",
" [ 0.2393, 1.8958, -1.3947]])\n"
]
}
],
"source": [
"x1 = torch.randn(2,3)\n",
"x2 = torch.randn(2,3)\n",
"print(x1, x2)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([-0.3825, -0.1021])"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"F.cosine_similarity(x1, x2)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(-0.3825)"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# cosine_similarity的计算公式\n",
"sum(x1[0]*x2[0]) / (torch.norm(x1[0])*torch.norm(x2[0])+1e-8)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 截断函数\n",
"----\n",
"- torch.ceil(input, out=None) #返回向正方向取得最小整数\n",
"- torch.floor(input, out=None) #返回向负方向取得最大整数\n",
"\n",
"- torch.round(input, out=None) #返回相邻最近的整数,四舍五入\n",
"\n",
"- torch.trunc(input, out=None) #返回整数部分数值\n",
"- torch.frac(tensor, out=None) #返回小数部分数值\n",
"\n",
"- torch.fmod(input, divisor, out=None) #返回input/divisor的余数\n",
"- torch.remainder(input, divisor, out=None) #同上"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## torch.matmul\n",
"- mm只能进行矩阵乘法,也就是输入的两个tensor维度只能是(n×m)(n\\times m)(n×m)和(m×p)(m\\times p)(m×p)\n",
"- bmm是两个三维张量相乘, 两个tensor维度是(b×n×m)和(b×m×p)得到 (b×n×p), 第一维b代表batch_size。\n",
"- matmul可以进行张量乘法, 输入可以是高维。\n",
"\n",
"- scores = torch.matmul(x, x.transpose(-2, -1)) / math.sqrt(d_k)\n",
"\n",
"- [torch.transpose](https://pytorch.org/docs/stable/torch.html#torch.transpose) # tonser的转置"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[ 0.0608, -0.1447, -0.3057, 0.9118, -0.3778, 1.2587, -1.7109,\n",
" -1.0704, 0.4352, -2.0029],\n",
" [ 0.9735, 1.0512, -1.4398, -0.6600, 0.3955, 0.3646, 0.0474,\n",
" -1.5265, 0.0718, 0.4676],\n",
" [-0.5715, -1.2914, 0.1073, -0.3753, 0.5765, -0.9402, -1.1904,\n",
" 0.5456, 0.1140, -0.1685],\n",
" [ 0.4498, 0.7682, 0.2298, 0.6669, -1.0050, 1.4804, 0.5312,\n",
" 1.0791, -0.7552, -0.3538],\n",
" [-0.8476, -0.7348, -0.9190, 0.1542, 0.4850, -0.5129, 3.2134,\n",
" 1.1763, 0.1987, 1.1999]],\n",
"\n",
" [[ 1.1443, 0.6204, 0.6688, -0.7729, 0.1621, 0.0467, 0.8106,\n",
" 1.8824, -0.2517, 1.4625],\n",
" [ 0.7914, 0.0971, 0.2454, 0.2563, 1.5868, -0.2585, -0.5065,\n",
" -1.3138, -0.2943, 0.3584],\n",
" [ 1.2666, 0.3284, 1.6281, 0.7337, -1.0108, 0.1650, -0.0435,\n",
" 0.9840, -0.8043, 0.7147],\n",
" [-1.0370, 0.2351, -1.2820, 0.9013, 1.2597, -1.7748, -2.1565,\n",
" 0.6012, 2.0741, -0.4460],\n",
" [ 1.0765, -0.1866, -1.2976, -0.2885, 0.0313, -0.0154, 1.1737,\n",
" -1.2480, 1.9115, 1.0470]]])"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x1 = torch.randn(2, 5, 10)\n",
"x1"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[ 0.0608, 0.9735, -0.5715, 0.4498, -0.8476],\n",
" [-0.1447, 1.0512, -1.2914, 0.7682, -0.7348],\n",
" [-0.3057, -1.4398, 0.1073, 0.2298, -0.9190],\n",
" [ 0.9118, -0.6600, -0.3753, 0.6669, 0.1542],\n",
" [-0.3778, 0.3955, 0.5765, -1.0050, 0.4850],\n",
" [ 1.2587, 0.3646, -0.9402, 1.4804, -0.5129],\n",
" [-1.7109, 0.0474, -1.1904, 0.5312, 3.2134],\n",
" [-1.0704, -1.5265, 0.5456, 1.0791, 1.1763],\n",
" [ 0.4352, 0.0718, 0.1140, -0.7552, 0.1987],\n",
" [-2.0029, 0.4676, -0.1685, -0.3538, 1.1999]],\n",
"\n",
" [[ 1.1443, 0.7914, 1.2666, -1.0370, 1.0765],\n",
" [ 0.6204, 0.0971, 0.3284, 0.2351, -0.1866],\n",
" [ 0.6688, 0.2454, 1.6281, -1.2820, -1.2976],\n",
" [-0.7729, 0.2563, 0.7337, 0.9013, -0.2885],\n",
" [ 0.1621, 1.5868, -1.0108, 1.2597, 0.0313],\n",
" [ 0.0467, -0.2585, 0.1650, -1.7748, -0.0154],\n",
" [ 0.8106, -0.5065, -0.0435, -2.1565, 1.1737],\n",
" [ 1.8824, -1.3138, 0.9840, 0.6012, -1.2480],\n",
" [-0.2517, -0.2943, -0.8043, 2.0741, 1.9115],\n",
" [ 1.4625, 0.3584, 0.7147, -0.4460, 1.0470]]])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x2 = x1.transpose(-2, -1)\n",
"x2"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[10.9509, 0.7026, 0.2158, 1.0130, -9.4263],\n",
" [ 0.7026, 7.4071, -2.8955, -1.2250, -1.4394],\n",
" [ 0.2158, -2.8955, 5.1194, -3.5163, -1.3244],\n",
" [ 1.0130, -1.2250, -3.5163, 6.6340, 0.1013],\n",
" [-9.4263, -1.4394, -1.3244, 0.1013, 15.8137]],\n",
"\n",
" [[ 9.1703, -1.1083, 5.0835, -4.2642, 0.1277],\n",
" [-1.1083, 5.5442, -0.8025, 1.1083, 1.3530],\n",
" [ 5.0835, -0.8025, 8.0778, -5.5296, -3.1245],\n",
" [-4.2642, 1.1083, -5.5296, 17.8355, 0.5264],\n",
" [ 0.1277, 1.3530, -3.1245, 0.5264, 10.6467]]])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y = torch.matmul(x1, x2) #2, 5,10 * 2, 10, 5\n",
"y"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([2, 5, 5])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y.size()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[[ 5.4754, 0.3513, 0.1079, 0.5065, -4.7131],\n",
" [ 0.3513, 3.7035, -1.4478, -0.6125, -0.7197],\n",
" [ 0.1079, -1.4478, 2.5597, -1.7581, -0.6622],\n",
" [ 0.5065, -0.6125, -1.7581, 3.3170, 0.0506],\n",
" [-4.7131, -0.7197, -0.6622, 0.0506, 7.9068]],\n",
"\n",
" [[ 4.5851, -0.5541, 2.5418, -2.1321, 0.0639],\n",
" [-0.5541, 2.7721, -0.4012, 0.5542, 0.6765],\n",
" [ 2.5418, -0.4012, 4.0389, -2.7648, -1.5622],\n",
" [-2.1321, 0.5542, -2.7648, 8.9177, 0.2632],\n",
" [ 0.0639, 0.6765, -1.5622, 0.2632, 5.3234]]])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y / 2"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"a = '微信 是否 会 收费 ? 近日 工信部 和 腾讯 公司 的 不同 回应 让 微信 的 未来 显得 扑朔迷离 。 随着 3G 网络 的 普及 , 许多 国家 和 地区 都 有 像 “ 微信 ” 这样 能够 实现 即时通讯 、 通话 的 手机 应用 。 “ 微信 ” 在 国外 什么样 ? 它们 收费 吗 ? 一张 图带 你 了解 海外 “ 微信 ” 。 ____ ____ ' \n",
"b = '“ 微信 ” 在 海外'\n",
"c = '[ 话筒 ] “ 微信 ” 在 国外 什么样 ? 它们 收费 吗 ? [ 话筒 ] [ 思考 ] [ 吃惊 ] [ 吃惊 ]'"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--------------------------------------------------------------------------------------------------------------\n",
"原 文: \u001b[01;34m 微信 是否 会 收费 ? 近日 工信部 和 腾讯 公司 的 不同 回应 让 微信 的 未来 显得 扑朔迷离 。 随着 3G 网络 的 普及 , 许多 国家 和 地区 都 有 像 “ 微信 ” 这样 能够 实现 即时通讯 、 通话 的 手机 应用 。 “ 微信 ” 在 国外 什么样 ? 它们 收费 吗 ? 一张 图带 你 了解 海外 “ 微信 ” 。 ____ ____ \u001b[0m\n",
"\n",
"参考摘要: \u001b[01;35m “ 微信 ” 在 海外 \u001b[0m\n",
"\n",
"生成摘要: \u001b[01;36m [ 话筒 ] “ 微信 ” 在 国外 什么样 ? 它们 收费 吗 ? [ 话筒 ] [ 思考 ] [ 吃惊 ] [ 吃惊 ] \u001b[0m\n",
"\n",
"--------------------------------------------------------------------------------------------------------------\n"
]
}
],
"source": [
"print('-' * 110)\n",
"print('{} \\033[01;34m {} \\033[0m\\n'.format('原 文:', a))\n",
"print('{} \\033[01;35m {} \\033[0m\\n'.format('参考摘要:', b))\n",
"print('{} \\033[01;36m {} \\033[0m\\n'.format('生成摘要:', c))\n",
"print('-' * 110)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"\n",
"a = '日前 , 教育部 公布 2012 年度 普通 高等学校 本科专业 设置 备案 或 审批 结果 。 全国 高校 258 个 专业 未 通过 审批 , 且 很多 是 当下 热门 专业 , 如 法学 、 会计 、 工商管理 等 , 有些 专业 已经 被 列入 教育部 的 预警 专业 。 教育界 人士 分析 , 人才 市场 的 需求 已 开始 出现 “ 供大于求 ” 现象 。' \n",
"b = '258 个 专业 被 否决 !!____!! !!____!! 部分 热门 专业 遭 “ 预警 ”'\n",
"c = '教育部 : 全国 高校 258 个 专业 未 通过 审批 , 且 很多 是 当下 热门 专业 , 如 法学 、 会计 、 工商管理 等 专业 已经 审批 结果'\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--------------------------------------------------------------------------------------------------------------\n",
"原 文: \u001b[01;34m 日前 , 教育部 公布 2012 年度 普通 高等学校 本科专业 设置 备案 或 审批 结果 。 全国 高校 258 个 专业 未 通过 审批 , 且 很多 是 当下 热门 专业 , 如 法学 、 会计 、 工商管理 等 , 有些 专业 已经 被 列入 教育部 的 预警 专业 。 教育界 人士 分析 , 人才 市场 的 需求 已 开始 出现 “ 供大于求 ” 现象 。 \u001b[0m\n",
"\n",
"参考摘要: \u001b[01;35m 258 个 专业 被 否决 !!____!! !!____!! 部分 热门 专业 遭 “ 预警 ” \u001b[0m\n",
"\n",
"生成摘要: \u001b[01;36m 教育部 : 全国 高校 258 个 专业 未 通过 审批 , 且 很多 是 当下 热门 专业 , 如 法学 、 会计 、 工商管理 等 专业 已经 审批 结果 \u001b[0m\n",
"\n",
"--------------------------------------------------------------------------------------------------------------\n"
]
}
],
"source": [
"print('-' * 110)\n",
"print('{} \\033[01;34m {} \\033[0m\\n'.format('原 文:', a))\n",
"print('{} \\033[01;35m {} \\033[0m\\n'.format('参考摘要:', b))\n",
"print('{} \\033[01;36m {} \\033[0m\\n'.format('生成摘要:', c))\n",
"print('-' * 110)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
================================================
FILE: P000CheatSheet/struct_tf.ipynb
================================================
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## tf.example"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import glob\n",
"import random\n",
"import struct\n",
"import csv\n",
"from tensorflow.core.example import example_pb2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"train_bin_files = \"../P007PytorchPointerGeneratorNetwork/cnn-dailymail/finished_files/chunked/train_*\""
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"filelists = glob.glob(train_bin_files)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'../P007PytorchPointerGeneratorNetwork/cnn-dailymail/finished_files/chunked/train_000.bin'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"filelists[0]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"len_bytes: b'\\xd9\\x11\\x00\\x00\\x00\\x00\\x00\\x00'\n",
"str_len: 4569\n",
"example_str: b\"\\n\\xd6#\\n\\xdf\\x02\\n\\x08abstract\\x12\\xd2\\x02\\n\\xcf\\x02\\n\\xcc\\x02<s> mentally ill inmates in miami are housed on the `` forgotten floor '' </s> <s> judge steven leifman says most are there as a result of `` avoidable felonies '' </s> <s> while cnn tours facility , patient shouts : `` i am the son of the president '' </s> <s> leifman says the system is unjust and he 's fighting for change . </s>\\n\\xf1 \\n\\x07article\\x12\\xe5 \\n\\xe2 \\n\\xdf editor 's note : in our behind the scenes series , cnn correspondents share their experiences in covering news and analyze the stories behind the events . here , soledad o'brien takes users inside a jail where many of the inmates are mentally ill . an inmate housed on the `` forgotten floor , '' where many mentally ill inmates are housed in miami before trial . miami , florida -lrb- cnn -rrb- -- the ninth floor of the miami-dade pretrial detention facility is dubbed the `` forgotten floor . '' here , inmates with the most severe mental illnesses are incarcerated until they 're ready to appear in court . most often , they face drug charges or charges of assaulting an officer -- charges that judge steven leifman says are usually `` avoidable felonies . '' he says the arrests often result from confrontations with police . mentally ill people often wo n't do what they 're told when police arrive on the scene -- confrontation seems to exacerbate their illness and they become more paranoid , delusional , and less likely to follow directions , according to leifman . so , they end up on the ninth floor severely mentally disturbed , but not getting any real help because they 're in jail . we toured the jail with leifman . he is well known in miami as an advocate for justice and the mentally ill . even though we were not exactly welcomed with open arms by the guards , we were given permission to shoot videotape and tour the floor . go inside the ` forgotten floor ' '' at first , it 's hard to determine where the people are . the prisoners are wearing sleeveless robes . imagine cutting holes for arms and feet in a heavy wool sleeping bag -- that 's kind of what they look like . they 're designed to keep the mentally ill patients from injuring themselves . that 's also why they have no shoes , laces or mattresses . leifman says about one-third of all people in miami-dade county jails are mentally ill . so , he says , the sheer volume is overwhelming the system , and the result is what we see on the ninth floor . of course , it is a jail , so it 's not supposed to be warm and comforting , but the lights glare , the cells are tiny and it 's loud . we see two , sometimes three men -- sometimes in the robes , sometimes naked , lying or sitting in their cells . `` i am the son of the president . you need to get me out of here ! '' one man shouts at me . he is absolutely serious , convinced that help is on the way -- if only he could reach the white house . leifman tells me that these prisoner-patients will often circulate through the system , occasionally stabilizing in a mental hospital , only to return to jail to face their charges . it 's brutally unjust , in his mind , and he has become a strong advocate for changing things in miami . over a meal later , we talk about how things got this way for mental patients . leifman says 200 years ago people were considered `` lunatics '' and they were locked up in jails even if they had no charges against them . they were just considered unfit to be in society . over the years , he says , there was some public outcry , and the mentally ill were moved out of jails and into hospitals . but leifman says many of these mental hospitals were so horrible they were shut down . where did the patients go ? nowhere . the streets . they became , in many cases , the homeless , he says . they never got treatment . leifman says in 1955 there were more than half a million people in state mental hospitals , and today that number has been reduced 90 percent , and 40,000 to 50,000 people are in mental hospitals . the judge says he 's working to change this . starting in 2008 , many inmates who would otherwise have been brought to the `` forgotten floor '' will instead be sent to a new mental health facility -- the first step on a journey toward long-term treatment , not just punishment . leifman says it 's not the complete answer , but it 's a start . leifman says the best part is that it 's a win-win solution . the patients win , the families are relieved , and the state saves money by simply not cycling these prisoners through again and again . and , for leifman , justice is served . e-mail to a friend .\"\n"
]
}
],
"source": [
"f = filelists[0]\n",
"reader = open(f, 'rb')\n",
"while True:\n",
" len_bytes = reader.read(8)\n",
" print(\"len_bytes:\", len_bytes)\n",
" if not len_bytes:\n",
" break # finished reading this file\n",
" str_len = struct.unpack('q', len_bytes)[0]\n",
" print(\"str_len:\", str_len)\n",
" example_str = struct.unpack('%ds' % str_len, reader.read(str_len))[0]\n",
" print(\"example_str:\", example_str)\n",
" break\n",
" #yield example_pb2.Example.FromString(example_str)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"# example_str = b\"I love you\"\n",
"example = example_pb2.Example.FromString(example_str)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"features {\n",
" feature {\n",
" key: \"abstract\"\n",
" value {\n",
" bytes_list {\n",
" value: \"<s> mentally ill inmates in miami are housed on the `` forgotten floor \\'\\' </s> <s> judge steven leifman says most are there as a result of `` avoidable felonies \\'\\' </s> <s> while cnn tours facility , patient shouts : `` i am the son of the president \\'\\' </s> <s> leifman says the system is unjust and he \\'s fighting for change . </s>\"\n",
" }\n",
" }\n",
" }\n",
" feature {\n",
" key: \"article\"\n",
" value {\n",
" bytes_list {\n",
" value: \"editor \\'s note : in our behind the scenes series , cnn correspondents share their experiences in covering news and analyze the stories behind the events . here , soledad o\\'brien takes users inside a jail where many of the inmates are mentally ill . an inmate housed on the `` forgotten floor , \\'\\' where many mentally ill inmates are housed in miami before trial . miami , florida -lrb- cnn -rrb- -- the ninth floor of the miami-dade pretrial detention facility is dubbed the `` forgotten floor . \\'\\' here , inmates with the most severe mental illnesses are incarcerated until they \\'re ready to appear in court . most often , they face drug charges or charges of assaulting an officer -- charges that judge steven leifman says are usually `` avoidable felonies . \\'\\' he says the arrests often result from confrontations with police . mentally ill people often wo n\\'t do what they \\'re told when police arrive on the scene -- confrontation seems to exacerbate their illness and they become more paranoid , delusional , and less likely to follow directions , according to leifman . so , they end up on the ninth floor severely mentally disturbed , but not getting any real help because they \\'re in jail . we toured the jail with leifman . he is well known in miami as an advocate for justice and the mentally ill . even though we were not exactly welcomed with open arms by the guards , we were given permission to shoot videotape and tour the floor . go inside the ` forgotten floor \\' \\'\\' at first , it \\'s hard to determine where the people are . the prisoners are wearing sleeveless robes . imagine cutting holes for arms and feet in a heavy wool sleeping bag -- that \\'s kind of what they look like . they \\'re designed to keep the mentally ill patients from injuring themselves . that \\'s also why they have no shoes , laces or mattresses . leifman says about one-third of all people in miami-dade county jails are mentally ill . so , he says , the sheer volume is overwhelming the system , and the result is what we see on the ninth floor . of course , it is a jail , so it \\'s not supposed to be warm and comforting , but the lights glare , the cells are tiny and it \\'s loud . we see two , sometimes three men -- sometimes in the robes , sometimes naked , lying or sitting in their cells . `` i am the son of the president . you need to get me out of here ! \\'\\' one man shouts at me . he is absolutely serious , convinced that help is on the way -- if only he could reach the white house . leifman tells me that these prisoner-patients will often circulate through the system , occasionally stabilizing in a mental hospital , only to return to jail to face their charges . it \\'s brutally unjust , in his mind , and he has become a strong advocate for changing things in miami . over a meal later , we talk about how things got this way for mental patients . leifman says 200 years ago people were considered `` lunatics \\'\\' and they were locked up in jails even if they had no charges against them . they were just considered unfit to be in society . over the years , he says , there was some public outcry , and the mentally ill were moved out of jails and into hospitals . but leifman says many of these mental hospitals were so horrible they were shut down . where did the patients go ? nowhere . the streets . they became , in many cases , the homeless , he says . they never got treatment . leifman says in 1955 there were more than half a million people in state mental hospitals , and today that number has been reduced 90 percent , and 40,000 to 50,000 people are in mental hospitals . the judge says he \\'s working to change this . starting in 2008 , many inmates who would otherwise have been brought to the `` forgotten floor \\'\\' will instead be sent to a new mental health facility -- the first step on a journey toward long-term treatment , not just punishment . leifman says it \\'s not the complete answer , but it \\'s a start . leifman says the best part is that it \\'s a win-win solution . the patients win , the families are relieved , and the state saves money by simply not cycling these prisoners through again and again . and , for leifman , justice is served . e-mail to a friend .\"\n",
" }\n",
" }\n",
" }\n",
"}"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"example"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"’\n"
]
}
],
"source": [
"print(u'\\u2019')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"”\n"
]
}
],
"source": [
"print(u'\\u201d')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"b'\\x08\\x00\\x00\\x00\\x00\\x00\\x00\\x00'"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"st = \"I love NLP\"\n",
"struct.pack('q', 8)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
================================================
FILE: P000CheatSheet/torch_gather.ipynb
================================================
{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"import torch"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[2],\n",
" [3],\n",
" [4]])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b = torch.tensor([2,3,4])\n",
"b.size()\n",
"b.unsqueeze(1)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([3, 5])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = torch.tensor([[0.1,0.1,0.3,0.2,0.3],\n",
" [0.4,0.4,0.1,0.05,0.05],\n",
" [0.1,0.1,0.1,0.2,0.5]])\n",
"a.size()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.3000],\n",
" [0.0500],\n",
" [0.5000]])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = torch.gather(a, 1, b.unsqueeze(1))\n",
"c"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[-1.2040],\n",
" [-2.9957],\n",
" [-0.6931]])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.log(c)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"import math"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-0.6931471805599453"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"math.log(0.5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 如何计算多分类的交叉熵损失?"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"y_true = ['1', '4', '5'] # 样本的真实标签\n",
"\n",
"y_pred = [\n",
" [0.1, 0.6, 0.3, 0, 0, 0, 0, 0, 0, 0],\n",
" [0, 0.3, 0.2, 0, 0.5, 0, 0, 0, 0, 0],\n",
" [0.6, 0.3, 0, 0, 0, 0.1, 0, 0, 0, 0]\n",
"] \n",
"# 样本的预测概率\n",
"labels = ['0','1','2','3','4','5','6','7','8','9'] # 所有标签"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import log_loss\n",
"from sklearn.preprocessing import LabelBinarizer\n",
"from math import log"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loss by sklearn is:1.1688526324400008.\n"
]
}
],
"source": [
"# 利用sklearn中的log_loss()函数计算交叉熵\n",
"sk_log_loss = log_loss(y_true, y_pred, labels=labels)\n",
"print(\"Loss by sklearn is:%s.\" %sk_log_loss)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0 1 0 0 0 0 0 0 0 0]\n",
" [0 0 0 0 1 0 0 0 0 0]\n",
" [0 0 0 0 0 1 0 0 0 0]]\n",
"0\n",
"0.1\n",
"---\n",
"1\n",
"0.6\n",
"---\n",
"0\n",
"0.3\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"0.3\n",
"---\n",
"0\n",
"0.2\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"1\n",
"0.5\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"0.6\n",
"---\n",
"0\n",
"0.3\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"1\n",
"0.1\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"0\n",
"1e-15\n",
"---\n",
"Loss by equation is:1.1688526324399937.\n"
]
}
],
"source": [
"# 对样本的真实标签进行标签二值化\n",
"lb = LabelBinarizer()\n",
"lb.fit(labels)\n",
"transformed_labels = lb.transform(y_true)\n",
"print(transformed_labels)\n",
"\n",
"N = len(y_true) # 样本个数\n",
"K = len(labels) # 标签个数\n",
"\n",
"eps = 1e-15 # 预测概率的控制值\n",
"Loss = 0 # 损失值初始化\n",
"\n",
"for i in range(N):\n",
" for k in range(K):\n",
" # 控制预测概率在[eps, 1-eps]内,避免求对数时出现问题\n",
" if y_pred[i][k] < eps:\n",
" y_pred[i][k] = eps\n",
" if y_pred[i][k] > 1-eps:\n",
" y_pred[i][k] = 1-eps\n",
" # 多分类问题的交叉熵计算公式\n",
" print(transformed_labels[i][k])\n",
" \n",
" print(y_pred[i][k])\n",
" print(\"---\")\n",
" Loss -= transformed_labels[i][k]*log(y_pred[i][k])\n",
"\n",
"Loss /= N\n",
"print(\"Loss by equation is:%s.\" % Loss)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"d = torch.gather(torch.tensor(y_pred), 1, torch.tensor([int(i) for i in y_true], dtype=torch.long).unsqueeze(1))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.5108],\n",
" [0.6931],\n",
" [2.3026]])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"-torch.log(d)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3.5065"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"2.3026+0.5108+0.6931"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/ClassList.txt
================================================
C000008 财经
C000010 IT
C000013 健康
C000014 体育
C000016 旅游
C000020 教育
C000022 招聘
C000023 文化
C000024 军事
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/10.txt
================================================
本报记者陈雪频实习记者唐翔发自上海
一家刚刚成立两年的网络支付公司,它的目标是成为市值100亿美元的上市公司。
这家公司叫做快钱,说这句话的是快钱的CEO关国光。他之前曾任网易的高级副总裁,负责过网易的上市工作。对于为什么选择第三方支付作为创业方向,他曾经对媒体这样说:“我能看到这个胡同对面是什么,别人只能看到这个胡同。”自信与狂妄只有一步之遥——这几乎是所有创业者的共同特征,是自信还是狂妄也许需要留待时间来考证。
对于市值100亿美元的上市公司,他是这样算这笔账的,“百度上市时广告客户数量只有4万,而且它所做的只是把客户吸引过来,就可以支撑起现有的庞大市值;而我们几年后的客户数量是几千万,而且这些客户都是能直接带来利润的,说市值100亿美元一点都不夸张。”
这家公司2005年年底注册用户达到400万,计划今年注册用户突破1000万,号称是国内最大的第三方网络支付平台。“在美国跟支付相关的收入已经超过了所有商业银行本身利差收入的总和,我所查到的数据是3000亿美元,其中超过70%是个人消费者带来的收入。”关国光喜欢借用美国支付产业的现状与中国的情况进行比较。虽然美国和中国差异显著,但他坚信中国的第三方支付市场前景非常广阔。
便利和安全挑战网络支付
“你只需要一个手机号码或者一个邮件地址就可以网络支付。”在快钱的户外广告中这样写道,这和传统的需要银行账户才能进行网络支付的习惯形成了鲜明的对比。
然而这种支付模式和传统的网络支付并无本质的区别,因为每一个手机号码和邮件地址背后都会对应着一个账户——这个账户可以是信用卡账户、借记卡账户,也包括邮局汇款、手机代收、电话代收、预付费卡和点卡等多种形式。
“快钱的功能其实就相当于融合了很多交易工具的VISA卡,所以又被称为网络VISA。”关国光说,“从本质上讲,我们和VISA等采用的底层技术是没有差别的,我们和它的区别在于VISA卡面对的交易工具比较单一,而快钱面对的是多种分散的交易工具。”
因为“信用缺位”,网络支付一直是困扰中国电子商务发展的瓶颈之一。网络支付平台相当于“信用缺位”条件下的“补位产物”,它把众多的银行卡整合到一个页面端口,以支付公司作为信用中介,在买家确认收到商品前,代替买卖双方暂时保管货款。
目前最知名的网络支付平台包括阿里巴巴的支付宝和eBay的Paypal(贝宝)。关国光表示,快钱最大的特点是第三方的支付平台,主要客户为那些中小公司。这些网络支付平台的主要业务是针对母公司的,不太可能被其母公司同行使用。
“而用户可以选择使用从银行卡、邮政汇款到点卡、预付费卡的各种支付方式,快钱平台对人口和支付工具的覆盖都非常广泛,这是我们创新的地方。”关国光告诉《第一财经日报》。
交易的安全性是网上支付平台最大的问题。关国光说:“快钱采用了各种机制来保证用户资金的安全性,例如回款机制等,可以在用户付款过程由于各种意外因素中止或未完成时,系统将用户账户自动回复到交易开始时的原始状态。”除此之外,快钱也建立了一系列监控机制,有问题的交易系统会被强制暂停两天以供审查。内部财务方面则遵守相互监督的原则,不会让任何一个人参与主导交易全程。在交易的识别方面,快钱有一套交易过滤引擎,可以识别出较明显的问题交易行为。
增值服务:网络支付的撒手锏
在关国光看来,快钱平台可以提供详细的用户行为记录,进而方便商户掌握用户的喜好和需要。这种增值服务对于支付平台至关重要。
在市场推广方面,快钱公司市场推广的目标就是让用户知道快钱这个品牌,然后将精力集中在核心应用上。“快钱的策略就是同主流应用相捆绑,致力同大厂商合作,因为目前大型门户所掌握的用户资源是相当多的。”
“我们不必去强迫用户使用快钱,因为网络支付只是交易过程中的一个附加品,单推一个支付平台是没有效果的。”关国光表示,“快钱的策略就是要找准交易,捆绑和依托在上面,用户在进行电子交易时,自然而然就会用到我们的支付平台。”
除此之外,快钱的策略是先稳定一批活跃用户后,再将目光放到普通用户上。关国光把快钱的营销模式称为非线型营销,“一个注册用户在支付交易中往往会带入一个未注册用户,用户之间的互动会形成网络效应。”
从创业开始,快钱的商业模式就没有变化过。“快钱的后端绝不做应用。”关国光信誓旦旦地表示。他认为一旦快钱做了应用,将面临更多的竞争对手,同时也违背了自己独立的第三方支付平台的市场定位。
快钱未来的梦想是:首先,将所有的支付工具整合为一个接口,随着流量的增加,给商户带来的价值是一样的,但成本更低。其次,快钱拥有用户的详细数据资料,可以实现数据库营销,为客户提供增值服务,例如支持客户的促销、推广等,或者为客户创造商业机会。
2005年8月,快钱公司获得美国DCM和半岛基金的首批风险投资,第二轮目前还在评估之中。关国光表示,对快钱来说,融资是一件水到渠成的事情,是最后考虑的问题。快钱挑选风投的条件只有两个,一是必须在中国有过投资;二是在中国的投资必须取得过成功。
“电子支付行业是一个入行容易、生存难的行业,”关国光说,“任何企业要在这个领域取得成功,就必须脚踏实地地认真去做,绝不能抱着投机的心理。”
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/11.txt
================================================
焦点个股:苏宁电器(002024),该股早市涨停开盘,其后虽在获利盘的抛压下略有回落但在强大买盘的推动下该股已经再次封于涨停,可见主力资金积极拉升的意愿相当强烈。
盘面解析:1.技术层面上,早市指数小幅探低后迅速回升,在中石化强势上扬的带动下指数已经成功翻红,多头实力之强令人瞠目结舌。不过在市场高度繁荣的情形下投资者也需谨慎操作,必竟持续的上攻已经消耗了大量的多头动能。
2.盘中热点来看,相比周二略有退温。但依然可以看到目前热点效应向外扩散的迹象相当明显。高度活跌的板块已经从前期的有色金属、金融地产股向外扩大至军工概念、航天航空等。
操作思路:短线依然需规避一下技术性回调风险,盘中切记不可追高。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/12.txt
================================================
智威汤逊全球CEO:大众传媒依然是品牌传播的好选择
本报记者康健发自上海
“想让品牌更快、更广地进入消费者,大众传媒仍然是很好的选择。”智威汤逊全球CEO Michael Maedel近日在上海的办公室告诉《第一财经(相关:理财 证券)日报》。他对有些人“电视、平面媒体失去意义”的观点不以为然。
智威汤逊是美国最大的广告公司之一,与奥美广告一起隶属于WPP集团,3月底刚刚收购了中国本土的上海奥维思市场营销服务公司。
大众媒体和互动媒体对半
针对新的媒体方式日益涌现,企业广告主投放广告越来越无所适从的情景,Michael认为,广告主应该进行定性定量的分析,使任何投放都有清晰的出发点:消费者。要让媒介触及消费者,使他们更愿意来倾听公司。
当然,在媒介越来越多的情形下,意味着传播方式的变化。过去主流的是大众传播,现在互动性和定制性带来了新的挑战——如何让品牌与消费者更加互动。
智威汤逊东北亚区域总监兼大中国区CEO唐锐涛则认为,中国面临两个挑战:品牌主张明确化和如何深化与消费者的关系。
他认为,大众品牌并未失去其价值,借助大众媒体可以清楚地传达品牌的真实含义。而在此基础上,还需要更新的形式使产品和消费者的关系进一步深化。通过互动媒体,可以将以往被动的关系变成主动对话的消费者关系。
唐锐涛的经验法则是,在进行投放的时候,大众媒体和新媒体“对半开”,前者致力于建立品牌,后者用于深化与消费者关系。
同时,产品根据消费者参与的程度也分为高消费者参与度产品和低消费者参与度产品。使用媒介取决于产品本身的复杂度。如饼干等不假思索就购买的产品,大众媒体作用比较大。汽车等奢侈品需要增加对话和互动,让消费者深入这个品牌。
全球品牌,本土特色
Michael特别强调品牌的全球定位和本地表述。他提到,即便广告主是洗衣机,在各个市场,洗衣机的价格跟消费者的工资比例不一样,有些市场用2天的工资就可以买一台,而有些市场,消费者需要用自己三个月的工资才能购买到。这样的情况下,消费者的参与度就完全不一样了。那些用三个月工资才能买得起洗衣机的人会花更多时间去了解产品的性能是否耐用,这跟成熟市场完全不同。
“本地化并不意味着把全球广告翻译成中文,这是一种拙劣的方式。”Michael 称。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/13.txt
================================================
新华网上海5月10日电 中国石化集团上海工程有限公司最近与中石化第二建设公司、荷兰AK公司组成联合体,一举成为沙特延布年产40万吨聚乙烯和40万吨聚丙烯生产装置项目的总承包商,总承包金额7.5亿美元,其中上海工程公司承包金额4.65亿美元。
据《解放日报》报道,目前,沙特石化项目的基础设计工作已接近尾声,其中上海工程公司派出20多人赴荷兰参与设计。项目详细设计工作将于年底结束。明年年初施工开始,直至2008年4月竣工。这期间,大批中国设备、材料将运往红海岸边,四五百名中国技术、管理和施工人员将奋战在异国土地上。
两年前,上海工程公司得知沙特基础工业公司决定在红海西岸的延布建设大型石化联合企业,而AK公司正参与其中部分装置的竞标。权衡利弊,上海工程公司决定放弃单打独斗而与AK公司携手,提出三方组成联合体参与竞标的设想。中外三方过去在其他项目上多次合作,相互知根知底,因此一拍即合,很快签订合作协议参与竞标。如此优势互补,果然在竞标时将所有对手远远地抛在了身后。
根据总承包合同,荷兰AK公司负责项目基础设计,上海工程公司派人参与;项目详细设计由上海工程公司负责完成,AK公司给予支持。项目主要设备、仪表、主要电气设备,由AK公司负责采购,其余设备和大宗材料由上海工程公司负责采购,项目施工由第二建设公司负责实施。
上海工程公司是一家具有53年历史的国内大型工程设计承包企业,先后成功完成了上海化工区总体规划设计,上海石化、扬子石化、杜邦纤维等国内外4000多项设计和承包工程。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/14.txt
================================================
根据艾瑞市场咨询有限公司发布的2005年《中国网上支付研究》报告,中国网上支付的市场规模在2001 年为9 亿元,2004 年就达到了75亿元,年均复合增长率为102.7%。艾瑞预测2007年我国网上支付市场规模将达到人民币605亿元。
应该说在超过4亿个手机用户和1亿多网民支撑下,网上支付市场的想象空间无疑是巨大的。
对此,北京YeePay公司首席执行官唐彬甚至认为,支付需求现在已经是国内未被满足的最大需求。但2005年以前,作为结算支付主体的商业银行在面对大量低端商户支付业务时显然是一种不在乎、视而不见的态度。在这种情况下,商业银行选择向支付公司提供支付网关接口,将网上支付业务外包给支付公司,正如eNet硅谷动力商务运营部总监张磊所说的那样,支付公司成为商业银行支付业务的总代理商。
面对网上支付公司的崛起,商业银行开始觉醒起来,采取措施应对威胁;另一方面,网上支付公司也暴露出它监管上的弊病。原6688商城拖欠挪用商户结算款就是明例。
这个时候传出央行要在2006年出台《电子支付指引(第二号)》文件,即《支付清算组织管理办法》的消息,主要内容被认为是“关系到第三方支付公司的牌照发放”,据了解,在电子支付领域,牌照数量不会超过10张;对于清算体系,央行的原则是“以央行作为主导,商业银行作为主体,社会组织作为补充”,而以快钱公司为代表的第三方支付公司就属于“社会组织”。另一家第三方支付商好购公司总经理何明攀在接受《第一财经(相关:理财 证券)日报》采访时表示央行之所以要出台管理办法就是为了防止网上金融欺诈和无序竞争,规范网上支付市场。
易观国际认为,随着今年底金融业全面开放的大限临近,中国第三方支付市场的重组与洗牌将在所难免,在目前国内40家左右的第三方支付服务商中,至少有一半会出局。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/15.txt
================================================
本报讯 (记者李英辉)已经退出北京市场两年多的车贷险业务重现市场。记者昨天获悉,安邦财险将在本月启动车贷险业务。
购买车贷险后,一旦贷款人不能还贷款,保险公司要负责赔偿银行贷款。该险种面市后,曾极大地促进了银行车贷业务的发展。由于车贷险的赔付率竟然超过100%,保险公司不堪重负,两年前全面退出市场。
新车贷险做了重大调整。原来只要被保险人逾期还款,保险公司就须代其还款。新条款中,保险公司的履约责任由第一位降到第二位,如出现被保险人逾期还款的现象,先由银行和汽车公司追偿,然后进入保险公司赔偿程序。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/16.txt
================================================
本报北京5月9日讯 记者潘跃今天从中国红十字会总会举办的“博爱论坛”上获悉:目前,全国已有641个县(市、区)开展试点工作,有1.63亿农民参加了合作医疗。试点地区农民的医疗负担有所减轻,因病致贫、因病返贫的情况有所缓解。
据有关资料显示,我国医疗资源分配极不均衡,占全国人口20%的城市人口占有我国卫生资源的80%,而占全国人口80%的农村人口仅占有20%的卫生资源。近年来,由于医疗服务保障的城乡差异,大城市的人均寿命比农村高12年,而贫困地区儿童死亡率则是大城市的9倍。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/17.txt
================================================
设想一下,如果某家银行花了大力气进行品牌建设,可顾客每每面对的是铁栅栏后面一张冷冰冰的脸,敷衍推诿,甚至恶语相向,他们自然很难相信这家银行所作的品牌承诺,也会动摇对银行的信任
本报记者范松璐发自上海
在一个金融服务品牌提升研讨会上,扬特品牌欧洲的董事长TerryTyrrell饶有兴趣地展示了一些别出心裁的银行标志,从图案的设计中很容易发现为人们所熟悉的知名公司品牌的影子,比如麦当劳那个醒目的“m”和苹果电脑缺了口的苹果,而类似可口可乐的标志下,索性写着“CocaCash”,看到这些易于识别和引发联想的标志,台下观众发出一阵阵会心的笑声。
“当然,这些银行标志只是我的想象,不过,目前在金融服务业领域,有没有像这几家企业那样影响深远的品牌呢?恐怕还没有。”Terry说。在激烈的竞争环境中,弱势品牌可能会被猎食,不过,只知道掏钱购买弱势品牌、而并不能建立一个强大品牌的猎食者也未必能得到良好的投资回报。对现有的银行而言,建立自身的强势品牌适逢其时,而且相当重要。
应求与众不同
国内金融服务业暗流汹涌。2006年是中国进入WTO,承诺开放金融市场的关键一年,外资银行即将进入,竞争格局正发生变化,市场内部也萌生诸多影响零售银行业务成长的因素——高强度的经济发展、政府收缩对社会福利的补助、房屋私有率提高、人口日益老龄化、个人消费成为经济发展的关键动力,而且企业银行业务要利用总体性平衡来管理中小型企业贷款、开发收费产品。
讲到银行现存的症结,人们的第一反应往往是不良贷款比率偏高、风险评估实战经验不足、消费性金融产品缺失、企业管理标准不够完备等等。但另一方面,不容忽视的是,国内银行的品牌建设也存在某种滞后——鲜有差异化的品牌定位、品牌经营思维和以客户为本的鲜明形象,顾客感受到的环境和服务面目雷同,甚至干脆一模一样。扬特中国区创意总监黄鼎杰展示了一页图片,是某家知名商业银行的营业厅,“能看出来这是哪一家银行吗?”的确,对多数人来说,只能感觉似曾相识,却基本无从分辨究竟是哪一家。
再看银行的图标,如果把具体的图案及字体隐去,会发现图标的颜色和形状极其接近,比如四大国有商业银行的图标都是圆形图案加上银行名字。“圆形,应该是钱币的意思,不过是否可以改换一下视觉形象,让自己更醒目些,区分性会带来更多机会。”黄鼎杰还展示了某家美国银行的营业厅照片,乍一看去,难以想象这居然会是银行,而更像一家前卫酒吧——设计活泼明快,各种独特有趣的细节点缀夺人眼球,还有咖啡台和上网的电脑,“在这样的银行里,等待也似乎不那么让人心焦了——不过这种风格在国内还是有些超前,可能很多人会不放心把钱放进去。”黄鼎杰觉得,毕竟大多数顾客对银行的期望还是以“专业、安全、权威”为主,在此基础上,如果适当加入更多“友善、亲切”的元素,会进一步提升银行在顾客心中的形象。比如在香港,大多数银行的保安并不穿制服,这些细节往往能拉近顾客的心理距离。
对银行来说,通过识别系统、广告活动等方式来建立品牌构造是远远不够的,必须有更高标准,还要更多地从感情上联结顾客,建立强烈的认同感。银行业正在掀起一场争取客户心智的战役。
别让冰山倾覆
Terry展示了一幅冰山的图片,在他看来,人们从外面感受一家企业,就如同看到露出海面的冰山,其中包括品牌的定位、个性、表述等方面,而水面以下深藏不露的更大部分则是企业自身对内的战略、愿景、价值和激励,这些是令品牌长久保持活力的源泉,作用更为关键,正所谓“吸引人的真实”(com p e llin g tru th)。露出水面的冰山可以吸引外界注意,但倘若缺少真实的根基,冰山终究难逃倾覆的命运。
很多企业在努力建立和管理品牌的时候,不觉间会犯一个错误,只把注意力聚焦在顾客身上,而忽略了对员工的沟通、了解和重视。
“如果不能把员工培养成忠实的内部品牌拥护者,那就太可惜了。”扬特中国区董事总经理Debora Chatwin 认为,前线员工应该成为真正的品牌大使,发挥独特能力,和顾客建立良好关系,给公司带来利润,自己也得到更大的满足。
员工投入度对公司的回报影响不可忽视,《星期日泰晤士报》在2002年一项“最佳雇主”调查中也指出,获得雇员好评的公司股价和股息收益增幅达25%,远高于同期英国全股指数6.3%的上涨幅度。再回到国内,盖勒普2004年进行了一项调查,将工作的人们分为“投入型”、“不投入型”、“积极投入型”三种类型,结果显示,有68%的人属于“不投入型”,对工作没有激情,觉得工作与自己个人关系不大,工作时几乎形同梦游。粗暴、冷漠、不满足的员工会伤及客户和公司自身,身处服务业的银行更是如此。
设想一下,如果某家银行花了大力气进行品牌建设,可顾客每每面对的是铁栅栏后面一张冷冰冰的脸,敷衍推诿,甚至恶语相向,他们自然很难相信这家银行所作的品牌承诺,也会动摇对银行的信任。许多国有商业银行在此方面可能需要多一些反思。“领导层的重视是使得员工与品牌紧密联结在一起的重要因素。”Terry表示。
“员工联结”修固品牌根基
银行的顾客细分、产品开发、风险管理都需要高水平的管理者和职员,有些人才要从外部市场引进并整合到银行的运营和文化中,这一点上,超越金钱奖励而创造积极向上的企业文化可能更为长远。
渣打银行在员工联结方面的努力产生了一定的效果,面对资源收缩、员工士气开始低落的现象,银行开展了名为“树立典范”(TaketheLead)的内部沟通计划,希望将所有人力资源和传播活动加以整合,清晰传递管理层的承诺,对员工进行积极有效的奖励,使他们重获工作的信心和自豪感,表现自己的领导才能。
计划的代言人是一个活泼的卡通人物“StarMan”(星仔),它的各种形象代表了各种“树立典范”的行动,力求将抽象鼓励变成具体榜样。渣打银行向高级经理们发放一套介绍计划的录像带和新的员工通讯录,贯彻名为“JustSayThankYou”(说句谢谢您)的员工表扬计划,用有“星”形象的卡片给努力工作的同事写谢谢,公司刊物也更名为“TheLeader”(典范)。另外,银行在对外的信息传递中也采用很多“星仔”标志,这一切都使员工对整个计划的印象不断深化,并逐步加强认同感。最终,顾客满意度显著上升,员工流失减少,对品牌内涵的理解更深。
“员工联结”不只是让大伙儿了解正在发生的事情,更要得到他们的投入和参与,与品牌之间产生一种紧密的情感。这样不仅能使冰山露出水面的部分看上去很美,深埋在水下、不易为人所见的真实根基也会更加牢固,做到这些,依靠银行自身长久的修为。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/18.txt
================================================
如果你周围的不少人都晋升了,那就该好好反省自己了。看看以下种种晋升“绝症”,是否有自己的身影呢?
职位成功晋级,事业更上层楼,这是不少经理人的职业目标。然而,很多经理人努力打拼却依旧还在原地徘徊。
在竞争社会,当你不能升职的时候,要先考虑是企业体制的问题,还是你自己的问题。如果是体制问题,你可能根本就没有机会,完全可以选择主动离开。如果你周围的不少人都晋升了,那就该好好反省自己了。看看以下种种晋升“绝症”,是否有自己的身影呢?
失语症——上司换了8个,我还是当绿叶
邓珉在一家知名房地产物业公司做行政人事主管,从2001年到现在,公司先后换了两任老总,换了8个项目经理,每个项目经理升职调走了,而她却一直在原地不动。让邓珉困惑的是,她要不停地适应新领导的管理风格,而且自己的发展空间有限。物业公司的行政人事工作并不复杂,她只要用30%的精力就足够应付得了。公司也一直认为邓珉是个老同志,比较稳定塌实,哪里需要就让邓珉过去。
“失语”诊断:邓珉一直在做默默无闻的“失语”绿叶,整整陪衬了8位上司。行政支持工作并不是最“抢眼”的红花,企业很容易把你定性。虽然你在公司给大家留下了不错的印象,但企业往往是哪里需要你,就把你往哪里搬。
药方:生意就是生意,经理人要更多地考虑自身的利益,衡量自己的投入和产出,千万别做赔本的买卖。想要晋升,就要勇于表现出来,要捅破这层窗户纸。第一,想要。第二,要做。第三,要让老板知道。一定要向老板提出你的想法,你可以结合企业的资源和现状来分析,要让老板意识到,你的确想要承担更大的责任。另外,表明你现有工作做得不错,你也有这样的能力。在企业环境相对稳定时,企业在重用一个人的时候,看重的不是能力,而是信任。这方面你有优势。
自闭症——就盯着自己的一亩三分地
一年前,业绩出色的路平被破格提升为企划经理,但他还是走业务路线,手底下没兵,只有一个助理协助他。他一直对市场企划总监这个职位心仪已久,没想到最后却被能力、业绩远不如自己的同事PK下来。
原来,一向喜欢单打独斗的路平总是有点各色,他只愿意盯准自己那一亩三分地。例会时,部门讨论其他市场活动方案,他总是一言不发。等到询问起他的意见时,他便说,“不好意思,我没来得及看。”平日的团队活动或是聚会,也难见他的身影。老板用人所长,结果导向,对路平也是睁一只眼闭一只眼。但同事们不免背后嘀咕,说路平小农意识。
“自闭”诊断:各色的路平眼里只有自己那一摊。在结果导向、业绩为王的公司,这样也许没错。但在晋升路上,过分的“自闭”会让上司有所顾虑,同事的反作用力也会断送你的晋升良机。
药方:职场中人人都是生意伙伴,上司、同事都是价值链上的客户和资源。只盘算着自己的眼前利益,往往会失去更多“商机”。路平要积极和同事们主动交往,能者多劳,既然你点子多,不妨多给同事们出一些好创意,而你在支持同事的同时,不仅获得了一个好人缘,进而也熟悉其他业务线,增强了自身的实力。如果其他业务线你也能轻松玩转的话,上司一定会给你更多机会的。
狂妄症——“我就愿意让别人听我的”
安妮是一家呼叫中心项目部的客服经理,她刚上任不久,就引起了下属的极度不满,而且被投诉到公司总部。
原来,安妮个性强势,上任后就进行了一系列改革,重新排班,规范服务,整顿流程等等。改革取得了一定成效,以前忙乱的客服工作逐渐变得有序,但安妮自己却引起了一片倒伐之声。当下属在外面忙得团团转时,她却在自己的单间里会客聊天,而且经常不来上班。而自由散漫的安妮对下属却是实施高压手段,用她的话来说,“我就愿意管人,让别人听我的。”她安排自己的亲信任职,监视其他下属言行,搞得员工怨声载道。几个月后,项目高管调整,其他几个项目的中层都获得了提升,惟独安妮没有新的发展空间,最终辞职而去。
“狂妄”诊断:安妮有着强烈的领导欲望,管理风格泼辣强悍,但她却忽略了接受方的感受。改革虽然初见成效,但她自己却难为表率,严人宽己的领导风格必然难以服众。
药方:狂妄的强权不是万灵药,身为管理者,安妮既是规则的制定者,也是规则的裁判,如果自己都处处破坏规则,一时的业绩也只能是短期效应。而下属员工是经理的供应商,水能载舟,也能覆舟,业绩是需要大家一起努力做出来的。安妮如果早些努力调试自己,采取一些柔性管理手段,避免激进改革,以身作则让员工口服心服,也不至于在项目调整时弄得丢盔卸甲。
多动症——不开心就跳,越跳越迷茫
30出头的汪力已经换了6家企业,现在一家IT企业任数码产品经理。年轻时为了薪水而跳,把跳槽当成涨薪的跳板,往往是这家企业还没彻底了断,就已经在下家开始领薪水。近一年来,汪力倒还算得上稳定,一直没什么非分之想。但上个月,公司的产品总监换成了一个台湾老板,对汪力似乎有些看不顺眼,重要业务会议不让他参加,一些产品的推广预算也卡得很紧。汪力感觉自己不被信任,正逐渐被边缘化,他又动了大不了走人的念头。
汪力把自己的简历给了一家猎头,没想到猎头却称,他跳槽频率过快,如果要晋升高职,希望并不大。如果平级跳,汪力又不甘心。
“多动”诊断:通常,猎头非常不喜欢频繁跳槽的人,因为频繁跳槽说明此人目标不清晰,对公司的忠诚度值得怀疑。汪力一直对自己期望较高,如果现实稍不如意,便有“弃暗投明”的念头。但频频转换,跳成了习惯,在每一个职位上都不能积累较多的资本,更谈不上为晋升打下坚实根基了。
药方:在猎头眼中,在一家公司中高层职位上干满3年的候选人是比较理想的。汪力如果认准了行业,就要努力埋头做下去,没有完美的企业和上司,你在这家企业被边缘化,如果不能咸鱼翻生的话,再换一家也同样如此。只有想清楚自己的目标,稳扎稳打,步步为营,用实在的业绩说话,下一个晋升机会才不会擦肩而过。
其他非典型晋升“绝症”
1.“红眼病”,容不得他人比自己能干,喜欢背后冷嘲热讽。
2.“营养不良”,知识和能力总是跟不上企业步伐。
3.“骨质疏松”,没有主见,人云亦云,就会做老好人。
……
第N种:“抑郁症”,非黑即白,抱怨连连却缺乏行动力。
(文章出自:前程无忧〈人力资本〉杂志)
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/19.txt
================================================
本报讯 (记者段志敏)中国移动北京地区手机资费刚刚下调,零售终端迅速作出反应。昨天下午,北京苏宁电器宣布本周末起手机大降价。包括诺基亚、摩托罗拉、索爱、三星等主流品牌在内的手机降幅将超过20%。
北京苏宁电器市场部经理徐正飞说,此次降价外资手机是主力,诺基亚降价机型多达10款,摩托罗拉和索尼爱立信降价机型也分别达到8款和6款。不少外资品牌新机型降幅超过20%。
苏宁电器华北地区管理总部执行总裁范志军认为,北京移动资费首次大幅调低,必将刺激北京手机市场消费,带来新增长,预计市场增幅应在30%以上。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/10.txt
================================================
本报讯 (记者 王京) 联想THINKPAD近期几乎全系列笔记本电脑降价促销,最高降幅达到800美元,降幅达到42%。这是记者昨天从联想美国官方网站发现的。
联想相关人士表示,这是为纪念新联想成立1周年而在美国市场推出的促销,产品包括THINKPAD
T、X以及Z系列笔记本。促销不是打价格战,THINK品牌走高端商务路线方向不会改变。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/11.txt
================================================
本报讯 全球最大个人电脑制造商戴尔公司8日说,由于市场竞争激烈,以及定价策略不当,该公司今年第一季度盈利预计有所下降。消息发布之后,戴尔股价一度下跌近6%,创下一年来的新低。
戴尔公司估计,其第一季度收入约为142亿美元,每股收益33美分。此前公司预测当季收入为142亿至146亿美元,每股收益36至38美分,而分析师平均预测戴尔同期收入为145.2亿美元,每股收益38美分。
为抢夺失去的市场份额,戴尔公司一些产品打折力度很大。戴尔公司首席执行官凯文·罗林斯在一份声明中说,公司在售后服务和产品质量方面一直在投资,同时不断下调价格。戴尔公司将于5月18日公布第一季度的财报。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/12.txt
================================================
本报讯(记者 陆一波)售价8.5万港元的《文渊阁四库全书电子版》在易趣网上竟以60元的价格拍卖。为此,拥有该电子出版物版权的迪志文化出版有限公司将共同经营易趣网的上海易趣贸易有限公司和亿贝易趣网络信息服务(上海)有限公司告进法院。昨天,市二中院开庭审理此案。
去年11月,迪志公司发现易趣网未经其许可,允许并配合其用户在网上公开拍卖该电子出版物,且这17张光盘均属盗版。迪志公司将易趣网的经营公司告进法院,要求立即停止侵权,赔偿经济损失人民币50万元并刊登致歉声明等。
易趣网的代理律师辩称,易趣网仅是网络交易的专用平台,未直接实施侵权交易,且网上已设知识产权查询系统,供权利人举报。该公司已尽合理范围内的注意义务,没有责任。
庭审中,法院发现《文渊阁四库全书电子版》的版权由迪志公司和上海人民出版社共同所有,故宣布该案将在上海人民出版社参加诉讼后继续开庭审理。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/13.txt
================================================
关键字:裁员 美国在线 呼叫中心
标题:美国在线计划裁员1300人占全球员工总数7%
时间:美国东部时间5月9日上午10时30分消息
来源:英文雅虎
内容摘要:美国在线计划裁员1300人,约占其全球员工总数的7%,位于费罗里达州杰克逊维尔呼叫中心将被关闭,此外,位于犹他州奥格登美国亚利桑那州图森的呼叫中心也被列入此次裁员的范围。这是自去年秋天美国在线裁员700人以来最大规模的一次人员精简行动。去年10月份,面对拨号上网用户数量持续下跌,美国在线关闭奥兰多的呼叫中心,位于杰克逊维尔和总部杜勒斯的呼叫中心有部分职位被削减,总共裁员700人,约占其全球员工总数的4%,尽管美国在线的用户流失现象严重,但该公司的发言人尼古拉斯-格拉汉姆将这一结果归咎于用户对电脑的日益了解以及更多工具的出现,他表示:“与1996年美国在线建立会员中心相比,2006年的英特网世界是一个完全不同的世界,美国在线的会员们头脑更加灵活,具备更加丰富的电脑知识,他们几乎都是电脑通,一般的故障都能自己排除,呼叫中心的功能日趋减弱。”一项数据显示,自2004年以来,美国在线的呼叫量下降了近一半。
关键字:手机销售 排名 瑞典
标题:4月份Telia商店手机销售排名前10位
时间:美国东部时间5月9日上午11时35分消息
来源:法新社
内容摘要:瑞典最大的通信产品零售店Telia今天公布2006年4月份手机销售排行榜,进入销售前十的手机中索爱占5款,诺基亚占3款,三星占2款,其中有两款是3G手机(诺基亚6280和三星Z140),六款有照相功能,六款有MP3播放功能,具体的排名为:排名前十位的手机为:(1)索爱K750i(上月排名第四)、(2)诺基亚3120(上月排名第三)、(3)诺基亚5140i(上月排名第一)、(4)索爱Z300i(上月排名第五)、(5)诺基亚6280(与上月的排名一致)、(6)索爱W810i(与上月的排名一致)、(7)三星X660(与上月的排名一致)、(8)索爱Z520i(上月排名第二)、(9)索爱W800i(上月排名第六)、(10)三星Z140(上月排名第九)。Telia是瑞典最大的移动电话零售店,拥有78个商店,该排名就是依据各商店的销售数据得出的结果,Telia市场部的负责人指出,“照相以及MP3播放功能已经成为许多客户对手机的基本要求,手机用户对于移动电视的需求也在不断增加。”
关键字:业内合作 下载 电视连续剧
标题:苹果公司提供福克斯娱乐集团出品的电视连续剧的下载
时间:美国东部时间5月9日上午11时20分消息
来源:英文雅虎
内容摘要:苹果公司日前宣布,iTunes音乐商店(Music Store)已经开始销售福克斯娱乐集团出品的电视连续剧,例如此前风靡全球的《24》。苹果公司介绍称,每部电视连续剧的下载费用为1.99美元,除了《24》之外,《盾牌》、《越狱》、《吸血鬼猎人巴菲》也在下载之列。此前,iTunes音乐商店提供来自ABC、CBS以及NBC的节目下载服务。
关键字:民意测验 电子游戏 美国
标题:40%美国成年男子玩电子游戏
时间:美国东部时间5月9日上午10时20分消息
来源:英文雅虎
内容摘要:美联社与美国在线近期开展的一项民意测验显示,十个成年美国男人当中有四人通过电脑或者游戏机玩电子游戏,其中有45%的人通过因特网玩电子游戏,多于三分之一的人2005年花费在网络游戏上的资金达到两百美元,42%的人每周玩电子游戏的时间超过了四个小时,26%的人通过游戏机玩电子游戏,六分之一的人每周在线玩游戏的时间为十个小时。关于游戏的内容,战略游戏最受欢迎,其次为体育游戏,冒险游戏还有射击游戏以及仿真游戏。
关键字:打击盗版 下载 华纳兄弟
标题:华纳兄弟计划通过BitTorrent提供影片下载服务
时间:美国东部时间5月9日上午11时55分消息
来源:英文雅虎
内容摘要:美国娱乐业巨头华纳兄弟公司(Warner Brothers)将成为第一家向BitTorrent用户提供电影内容下载服务的公司,该公司希望通过此举打击盗版行为。华纳兄弟家庭娱乐公司总裁Tsujihara表示:“盗版的问题变得越来越严重,我们的这种作法是将这一问题变成一种机会,如果我们能够将5%,10%甚至是15%的这些用户转化成合法的用户,其影响力将会十分的重大。”华纳兄弟公司指出,用户可以租用或者下载那些可以被制作成DVD的拷贝,但是此项服务推出日期以及具体的定价目前还不得而知。此前,华纳兄弟准备将电影如《蝙蝠侠》、电视连续剧《玩酷世代》等影片通过P2P网络在网路上销售。该公司一负责人指出,成功打败目前线上剽窃行为最有效的武器之一就是向用户提供合法且容易使用的替代性选择。In2Movies服务使观众能够合法下载华纳旗下百视达的电影、地区性节目。
关键字:业绩 荷兰电讯公司 净收入
标题:荷兰电讯公司Royal KPN NV周二表示其第一季度净收入达到3.83亿美元
时间:美国东部时间5月9日上午11时20分消息
来源:道琼斯新闻
内容摘要:荷兰电讯公司Royal KPN NV周二表示其第一季度净收入达到3.83亿美元,比去年同期的2.74亿美元增长了40%,销售收入也达到了37.2亿美元。在固定电话部门收入下降2.3%达到21.4亿美元的情况下,移动收入增长了15%,达到了19亿美元。此外,该公司在德国新增加用户70万。
关键字:新举措 漫游费 沃达丰
标题:沃达丰表示将在明年降低手机漫游资费
时间:美国东部时间5月9日上午10时25分消息
来源:道琼斯新闻
内容摘要:迫于欧洲委员会的压力,英国电信巨头沃达丰公司(Vodafone)近日表示将在明年降低手机漫游资费,其低价幅度将达到40%。欧洲委员会此前的建议称,当欧洲用户出国后,他们不应该被收取漫游费,不能因为他们出国旅行而缴纳更高的费用。
关键字:新产品 超薄手机 三星
标题:三星公司在莫斯科电信展推出两款超薄手机
时间:美国东部时间5月9日上午10时40分消息
来源:英文雅虎
内容摘要:在莫斯科的Sviaz ExpoComm 2006电信展上,三星公司推出两款超薄手机,其中一款为SGH-X820,厚6.9毫米,重66克,内置200万像素摄像头和MP3播放器,容量80MB,支持视频录制、蓝牙和电视输出。另外一款为滑盖式手机SGH-D900,厚度及重量比SGH-X820稍大一些,内置300万像素摄像头,支持Quad-band GSM网络,但三星公司并没有透露这两款手机的价格。
关键字:服务 高清晰 数字广播
标题:英国广播公司(BBC)首次推出免费的数字广播服务
时间:美国东部时间5月9日上午7时10分消息
来源:路透社
内容摘要:英国广播公司(BBC)本周内首次推出了使用电视格式的高清晰数字广播,这项服务将进行为期一年的试验。根据此前英国广播公司所作的调查显示,了解高清晰数字广播的听众都期待着BBC尽早开通高清晰数字广播服务,并希望在任何频道都能收到该广播。据报道,该项广播将从5月11日正式开通,开通之初仅限于拥有高清晰设备的用户。BBC公司同时还证实了在世界杯期间,在某些地区数字广播能用电缆进行传播。从6月9日开始,BBC公司将对世界杯进行高清晰无线电和电视的同时联播。这种联播还将应用于温布尔登主要的赛事。BBC电视部门总监加纳?贝内特(Jana Bennett)说:“高清晰数字广播是BBC公司计划在未来向全世界提供高清晰服务的而迈出的第一步,虽然步幅小,但是是激动人心的。”
关键字:电脑黑客 审判 服刑
标题:美国电脑黑客安契塔被判入狱57个月
时间:美国东部时间5月9日上午10时35分消息
来源:法新社
内容摘要:美国电脑黑客安契塔被判入狱57个月。检方指出,安契塔,20岁,是知名秘密骇客网络“地下蠕虫大师”的要员,于去年十一月被捕,这是第一起遭起诉的相关案件。他被控侵入四十万余部电脑(或称僵尸网路,bot nets)损害其系统,并促使受害电脑大量寄发垃圾邮件。遭安契塔入侵的,还包括美国军方的服务器。 在洛杉矶的联邦法庭上,面对17项指控,安契塔承认密谋违反电脑诈欺滥用法、反垃圾邮件法,和损及美国军方电脑。他并坦承散播能促使电脑发送垃圾邮件、广告以及对网站发动瘫痪性攻击的恶意软体。 检方发言人莫柴克说:“安契塔尤其对这一连串的秘密犯行负有责任,他入侵加州近五十万部电脑系统,受波及的电脑并不限于家用电脑,这也让他与他人得以发动大规模的攻击。” 安契塔在庭上同意赔偿军事单位一万五千美元,他的不法获益也遭没收,其中包括逾六万美元现金、一辆BMW汽车与一些电脑设备。(章田编译)
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/14.txt
================================================
本报讯(记者 马海邻)记者昨天得到确切消息,新浪公司今天将宣布由曹国伟接替汪延担任CEO,汪延则任董事会重要职位。
曹国伟此前是新浪总裁兼CFO(首席财务官)。他于1999年加入新浪,任主管财务的副总,之后任职CFO、CFO兼COO(首席运营官)。曹国伟先后获得复旦大学新闻学学士、美国奥克拉荷马大学新闻学硕士学位,1993年获德国奥斯町大学商业管理学院财务专业硕士学位后,任职普华永道。其人被外界评价为强势的鹰派管理风格,曾获《首席财务官》杂志和IDG中国共同评选的“2005年度杰出CFO”。
外界认为,由曹国伟主导的2003年1月收购讯龙、2004年3月收购深圳网兴科技,这两笔收购不仅奠定了新浪此后在无线增值业务上的地位,同时也增加了新浪经营模式的多样性与稳定性,对新浪意义非凡。新浪董事会对公司2005年以来业绩的滑坡、非广告业务收入下滑感到忧虑,希望曹国伟能够力挽狂澜,加强新业务的拓展。
汪延于2003年5月取代茅道临出任新浪CEO。有关新浪再次换帅的传闻,起于去年下半年。昨晚新浪内部一名高层人士证实,今天在发布财务季报的同时,宣布人事变动.
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/15.txt
================================================
全国25个入围项目 北京考古项目遗憾落选
十大考古新发现揭晓
本报记者黄涛报道 经过两天的专家评审,由中国文物报社和中国考古学会主办的“2005年度全国十大考古新发现”昨天晚上7点正式揭晓。25个参与评选的入围项目中,浙江嵊州小黄山遗址、湖南洪江高庙遗址等10个考古项目最终成功入选,北京门头沟东胡林遗址遗憾落选。
评选已延续16年
主持此次评选的中国考古学会理事长徐苹芳介绍,十大考古新发现开评至今已经是第16年,此次考古新发现评选从今年1月启动。与去年由各地申报不同的是,今年采取专家根据中国文物报发表资料遴选的办法,由有关专家联合推荐入围项目。
入围项目的推荐充分考虑学术价值、是否推进学科发展、社会影响、发掘中的 文物保护意识等因素,同时综合时代和区域考古成果等,从2005年1—12月期间国家文物局批准发掘的100余项考古发现中,召集专家会议筛选出24项,涵盖旧 石器时代至宋元时期各个类型的文化遗存。只有 福建东海平潭“碗礁1号”清代沉船遗址是经两位以上专家推荐,直接申请参评的。
参评须经国家批准
“在16年的评选中,评选的标准至今没有改变。”徐苹芳介绍说,评选标准总结来说就是“三个价值”和“一个新”。
参评项目必须是经过国家批准,发掘过程也符合国家的考古发掘规程。而这些考古发现的项目必须在全国范围内具有突出的历史价值、艺术价值和科学价值。而“新”则是指在中国考古学科中增添了新的内容和发现,这些标准缺一不可。
评委“忍痛割爱”
此次入选的项目中多数属于年代较远的遗址,徐苹芳解释说,18名评委们并没有“厚古薄今”的意思,完全根据考古的价值来评判。但是由于2005年是中国考古的“丰收年”,参选的项目水平都相当高,因此评委们最终也不得不“忍痛割爱”。
希望社会关注文保
在评选过程中,许多参评项目的代表都对记者表示,参加评选是否能最终入选并不是最重要的,而只是希望以此引起社会对文物保护的关注。
考古专家张忠培表示,随着目前全国建设速度的加快,许多考古项目都是被迫“抢救”发掘出来的。因此,希望以评选的方式推动社会和政府关注文物古迹的保护,为国人留下更多的“遗产”。
十大考古新发现入选项目
1.浙江嵊州小黄山遗址
浙江省文物考古研究所
2.湖南洪江高庙遗址
湖南省文物考古研究所
3.贵州威宁中水遗址
贵州省文物考古研究所
4.河南鹤壁刘庄遗址
河南省文物考古研究所、鹤壁市文物工作队
5.福建浦城猫耳弄山商代窑群
福建省文物管理委员会考古队、福建省博物院考古研究所等
6.山西绛县横水西周墓地
山西省考古研究所等
7.陕西韩城梁带村两周遗址
陕西省考古研究所
8.江苏句容、金坛周代土墩墓
南京博物院考古研究所
9.河南内黄杨庄汉代聚落遗址
河南省文物考古研究所
10.山西大同沙岭北魏壁画墓
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/16.txt
================================================
□本报记者 陆琼琼
记者昨日从新浪获悉,汪延已经正式辞去CEO一职,曹国伟将接替汪延升任CEO,正式掌舵新浪。短时间内,从CFO到COO,到CEO,曹国伟的工作能力得到多方认可,出任新浪第四任掌门似乎并不出人意外。
著名网络评论人方兴东认为,对于本来就已经失去灵魂人物的新浪来说,曹国伟的当家很可能会走向一条更稳健、更务实的发展道路。但另有分析人士指出,即使曹国伟的务实作风有益于新浪,如果董事长段永基不离开,新浪仍然难逃厄运。以上分析人士解释说,作为新浪董事长的段永基却把主要精力花在了新浪之外的公司。
日前传闻中的新浪+TOM模式将弥补新浪无线增值方面的不足。记者从可靠渠道了解到,曹国伟接任CEO后还将继续带领新浪与TOM集团洽谈。“其实双方的谈判没有停止过,只是在有些细节上的分歧致使双方迟迟没有谈成。”该人士透露。
新浪将在美国当地时间5月9日公布第一季度财报,分析师预计新浪第一季度营收为4590万美元,每股收益为0.15美元,同比下滑25%%。在所有研究新浪股票的分析师中,有五位对新浪的评级为“买入”,有八位的评级为“持有”,有两位的评级为“卖出”。
新浪5月8日收盘于28.52美元,比上一交易日上涨0.07%%。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/17.txt
================================================
新华社电 美国宇航局官员近日说,宇航局已决定设立一项总奖金为250万美元的大奖赛,希望用这种方式选出未来登陆月球的飞行器设计方案。
美宇航局副局长戴尔5月5日在加利福尼亚州举行的一次航天会议上说,宇航局已选定“X大奖”基金会管理这项竞赛,宇航局除了出奖金外,也将在未来的月球登陆计划中应用获奖方案。
这项大奖赛要求参赛者设计出能在月球上飞行、着陆的飞行器原型。“X大奖”基金会说,它将比赛分成两个级别,在地球上模拟月球飞行。第一阶段,参赛飞行器要求从地球上的发射点发射到50米高度,盘旋飞行90秒钟,并在距发射点100米处的指定地点着陆,比赛的第一名将获得35万美元奖金。
而第二级别的难度高得多。参赛飞行器要求从发射点发射至50米高度,盘旋飞行180秒,并在100米外类似月球表面的一处崎岖地点精确着陆。这项比赛的第一名将获得125万美元的奖金,其方案很可能被宇航局采纳,作为未来登陆月球的飞行器的原型。
“X大奖”基金会因举办私人设计航天器大奖赛而著名,著名航天设计师伯特·鲁坦设计的“宇宙飞船一号”于2004年成功地飞入亚轨道,成为全世界第一个私人设计建造的航天器,并赢得了1000万美元的“X大奖”。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/18.txt
================================================
日前,据联想相关负责人表示,为了纪念新联想成立一周年,联想在美国市场将ThinkPad T,X以及Z系列笔记本进行一次降价促销活动。
据了解,此次降价最高达到了800美元,降幅也达到了42%。但联想方面表示,此次降价仅仅是针对该活动,ThinkPad品牌今后的路线仍是以高端为主.
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/19.txt
================================================
科龙德勤案又有新进展:已有多位科龙H股股东到律师处咨询、登记,所涉股份达200余万股。而这些投资者正在为等待提起民事赔偿所需的前置条件焦急等待。
4月29日,上海新望闻达律师事务所律师宋一欣、秦桢凯在中国证券网上发表了《向境内外科龙H股投资者征集民事赔偿诉讼代理的启事》,全面接受科龙电器流通H股及A股投资者的诉讼及仲裁委托代理事项。宋一欣律师告诉《上海证券报》记者,“《启事》刊登当天,就有H股股东前来咨询登记,由于五一长假,事务所休息,许多H股股东想方设法找到我的电子信箱同我联系。截至今天,已有七八位H股股东前来咨询、登记,所涉及股份己达50余万股,损失金额有待统计。这些H股股东中有境外居民。他们正焦急等待此案前置程序的满足。”
首位代表科龙股东状告德勤的上海市光明律师事务所南京分所律师涂勇则向记者透露:“多位科龙H股股东前来向我咨询起诉事宜。其中一位就持有150万股科龙H股,持股成本高达300多万元。他非常渴望前置程序能尽快满足,以便诉上公堂。”
据宋一欣介绍,“根据最高人民法院司法解释的规定,提起虚假陈述民事赔偿诉讼必须满足前置条件,即中国证监会或财政部的行政处罚决定,或有关法院认定有罪并生效的刑事判决书,两者以先出台者为准。”
“在科龙案中,中国证监会已经对科龙电器与德勤会计师事务所进行了行政处罚前的听证程序,如果没有意外,估计今年上半年内行政处罚决定将出台;而顾雏军编制虚假财务报告罪案已经被广东省佛山市人民检察院立案、即将提起公诉,刑事审判在即。因此,包括H股股东在内的科龙电器权益受损的投资者提起民事赔偿应该不成问题,只是需要等待,万事俱备、只欠东风。”宋一欣进一步解释道。
谈及此案的被告,宋一欣表示,“科龙电器虚假陈述可涉及很多被告,如科龙电器公司;顾雏军等原董事、高管人员及直接责任人员;存在失职的原监事会成员和独立董事;进行审计的会计师事务所(会计师行)及其承担责任的合伙人、相关注册会计师;由于虚假陈述而获益的关联企业、控股股东等。但主要被告有三,即科龙电器公司、顾雏军、德勤华永会计师事务所(A股股东)或德勤·关黄陈会计师行(H股股东)。”
宋一欣称,“证券民事赔偿诉讼应当采取目前《民事诉讼法》规定的共同诉讼方式,科龙案也是如此。以共同诉讼提起的原告由于合并后按比例计算诉讼费,故其支出的诉讼费要比单独诉讼提起的原告所支付的诉讼费要少。所以,作为代理律师,从投资者的角度考虑,我需要筹集到一定数量投资者委托后才安排起诉。”(本报记者 岳敬飞 何军)
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/10.txt
================================================
专仿竞争共存
近日,美国医药保健管理协会(PCMA)的一份评估报告指出,专利药厂家就老年人经常使用的专利药出台了一系列措施,试图限制仿制药厂商产销该类产品,通过诉讼、游说立法和专利成分陷阱等手段,力求最大程度延缓仿制药上市或进入联邦医疗保险体系。
PCMA代表医药管理公司如医疗保险业的利益。该协会会长MarkMerritt表示,专利药厂家正努力在未来5年内阻止若干仿制药上市,从而换回高达230亿美元的专利药销售额。据该协会的统计,到2010年有大约14支老年人常用药的专利将到期,如果仿制药如期面市,仅通过仿制降胆固醇药舒降之和普拉固、抗抑郁药左洛复、前列腺药保列治就可能为美国联邦医疗保险节约130亿美元。
代表美国专利药制造商利益的美国药品研究与制造商协会(PhRMA)反驳了Merritt的指责,指出联邦医疗保险预算正在逐年下降,而且仿制药的使用率非常高,处方药中有一半以上是仿制药,证明专利药厂家没有操纵市场,限制仿制药出台。
代表不同利益的两家行会组织都在表达一个共同的意思就是——专利药厂家和仿制药厂家针锋相对。而实际上,专利药厂家和仿制药厂家私下里也有同盟之时。
4月24日,美国FDA表示,近期将开展一项市场舞弊行为的调查。FDA指出,专利药厂家和仿制药厂家通过签定赔偿协议,主动延迟仿制药的上市时间,或控制面市药物数量,以商业合同的形式钻法律的空子,使专利药厂家继续获得高额利润,而仿制药企业则从专利药厂家手中获得现金回报。
专利药和仿制药之间的法律斗争由来已久,专利药厂家和仿制药厂家都逐渐意识到这是一场制药工业的内耗。1999年,诞生了第一份由专利药厂家向仿制药厂家“购买”推迟仿制药物上市承诺的赔偿协议。专利药厂家可以因此维持销售额和利润,仿制药企业一方面可以获得稳定的收入,一方面可借机压缩仿制药领域内竞争对手的市场空间。
美国联邦贸易委员会披露,去年9月先后有3份赔偿协议生效,之后又至少签订了6份类似的赔偿协议。最近发生的两起判决更是催化了制药企业签订类似协议的热情。
其中一宗涉及年销售额38亿美元的赛诺菲-安万特公司产品波立维,该产品在美国市场上由百时美施贵宝公司销售。赛诺菲-安万特公司和百时美施贵宝公司与仿制药公司Apotex签定了赔偿协议。根据协议,Apotex公司将所研制的波立维仿制药上市时间延后至2011年,同时得到一笔赔偿金,赔偿金额没有披露。这份协议的签订意味着,美国纳税人还要继续支付高额药费长达5年。第一只仿制药上市将平均导致原专利药价格缩水40%,市场独享期后,其他仿制药上市将使原专利药价格平均再缩水20%~40%。联邦贸易委员会正在考虑如何对这一协议作出反应。另一起协议涉及先灵葆雅公司,联邦贸易委员会已经要求最高法院巡回法庭给予驳回。联邦贸易委员会表示,如果巡回法庭没有驳回该协议,将导致专利药厂家和仿制药厂家随意限制竞争,操纵市场,分享暴利。
联邦贸易委员会已经向白宫管理与预算办公室提交报告,希望获准对多达200家制药企业发出传票,彻底调查类似的赔偿协议是否触犯了反竞争法。但就目前各制药企业强大的游说力量而言,落实反竞争调查的难度相当大。
仿制药增长势不可挡
在未来5年里,仿制药市场的成长趋势不可抵挡。IMS的分析数据显示,在未来5年中,仿制药的销售额将以14%~17%的速度递增,比整个医药行业的销售预期多9%。Bain&Company公司认为,仅2008年就将有价值780亿美元的处方药受到仿制药的冲击,而2005年这个数字为200亿美元。
仿制药获得发展的另一个原因是政府的青睐。美国联邦医疗保健和医疗补助服务中心(CMMS)降低了2006年的医疗开支预算,从381亿美元减缩至305美元。在经济发展不畅的时候,美国政府格外希望看到更多便宜的仿制药上市,以缓解联邦预算压力。
这个夏天,辉瑞公司年销售额达33亿美元的抗抑郁畅销药左洛复将失去专利保护,受到仿制药冲击后,年销售额预计为4.7亿美元。仿制药大户泰华公司更愿意自己掌握市场,而不是通过赔偿协议获得利润。泰华美国公司发言人KevinMannix说,泰华公司已经获准第一个推出左洛复的仿制药,泰华公司将有6个月的市场独享期。
生物制药领域可能成为新的仿制药冲击市场。美国没有批准生物仿制药,但在美国以外生物仿制药有较为显著的发展。
美国不得不正视生物仿制药市场的前景。首先,生物制药市场庞大,2005年销售总额大约310亿美元,市场空间相当可观。其次,生物制剂复杂程度远高于化学制剂,仿制成本和难度相当高,因而对美国主要生物制药企业的冲击不至于非常严重,也就不会动摇美国在全球的生物领先地位。据统计,生物仿制药的对原药物的价格影响只有10%~20%,而化学制剂则高达80%。此外,如果不及时拓展生物仿制药市场,那么欧洲生物制药行业将快速发展,赶超美国,并通过对美国生物制剂的仿制,分流美国制药企业的利润。
或成寡头垄断局面
经过几年的发展,仿制药市场有可能从市场竞争阶段进入寡头垄断阶段。在未来几年出现大量专利药到期的情况下,这一现象有可能加剧。
咨询公司ThomsonIBES的分析资料显示,泰华公司在未来3~5年中可能保持20%的惊人年收入增幅,2006年的市营率预期为21,接近理想状态的20,而同行业平均市营率是24。泰华公司目前拥有多达160个左右的简化申请新药备案,其中也包括若干生物药物的仿制药报批内容。2006年度,泰华公司有望把持美国仿制药市场20%的份额。泰华公司的目标集中在未来5年内几乎所有制药行业将要失去专利、目前市场价值高达1000亿美元的药物,这些药物的仿制药市场价值至少为200亿美元。
其他有望成为寡头的仿制药企业中,Andrx公司2006年的市营率预期为24,每股收益增幅预期为19%,销售额预期为11.03亿美元,公司的市场价值为17.5亿美元;Barr公司2006年的市营率预期为19,每股收益增幅预期为16%,销售额预期为12.81亿美元,公司的市场价值为64.47亿美元;Mylan公司2006年的市营率预期为18,每股收益增幅预期为19%,销售额预期为12.46亿美元,公司的市场价值为46.31亿美元;Perrigo公司2006年的市营率预期为22,每股收益增幅预期为10%,销售额预期为14.61亿美元,公司的市场价值为15.55亿美元;华生公司2006年的市营率预期为20,每股收益增幅预期为10%,销售额预期为18.71亿美元,公司的市场价值为30.98亿美元。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/11.txt
================================================
万络给止痛药市场带来的阴霾久久仍未散去,但这丝毫不能说明该市场的需求在减少。在既定的需求现实下,COX-2抑制剂的衰落,必然引来趁虚而入者。不久前我国河南帅克制药和贵州益佰先后宣称将倚靠新的止痛药进入该领域,一场“分羹”之战显然已经急促展开。
潜力巨大的镇痛药市场一直是跨国公司的天下,而最近它们的优势地位正经受挑战,其缘由是2004年8月份王牌止痛药万络爆出安全性问题引发了市场对新型非甾体止痛药的不信任感。
去年9月万络自动撤出我国后腾出了巨大的市场空间,引起了众多企业的觊觎,去年5月13日,中美史克曾经发起“霞光行动”,试图从困境中挽救其OTC王牌药芬必得,但更多的国内企业则尽量避开身处安全性危机旋涡中的COX-2抑制剂领域,希望从新的镇痛领域入手找到征战止痛药市场的新武器。
不久前我国河南帅克制药和贵州益佰先后宣称将倚靠新的止痛药进入这个潜力仅次于感冒药的新领域,据帅克制药董事长张克军透露,帅克开发的止痛新药氨酚曲马多片即将上市。据记者了解,该产品也是今年西安杨森力推的重点产品。而贵州益佰方面则透露,该公司将凭借一种止痛中药来分切国内巨大的止痛药市场。
显然,一场新的止痛药市场“分羹”大战已经打响。
止痛药市场依然是金矿
分析人士指出,尽管目前使用最多的COX-2抑制剂正遭遇安全性危机,但对于整个止痛药并不构成影响,此事件的最大可能是各大类止痛药由此进行一轮市场替代,而与此同时,整个市场还在继续增长。
中国已经步入老龄化社会,中老年人口约有5亿。风湿和类风湿关节炎、肩周炎、颈椎病、骨质增生等疾病在老年甚至中年人群中属于常见病、多发病,各类疼痛病症患者约占中老年群体的65%,而且这一群体数量还在不断的增加。
另外,随着我国制造业大国地位的不断提升,产业工人数量急剧膨胀,长期的劳作容易导致各种机体劳损和关节疼痛,因此,该群体已经成为疼痛药物消费的另一个大群体。由于电脑等工具的引入,人们的工作和生活方式已经发生了根本的改变,长期的静坐催生了这一人群各种疼痛的出现,这是导致疼痛人群增长的又一个重要因素。
据IMS国际咨询公司预测,2005年,全球止痛剂市场总量达800亿美元以上。目前,美国、欧洲和日本是全球最大的止痛药市场,过去30年来止痛药市场销售额一直在稳步上升。国内的资料也显示:我国非处方药市场上止痛药增长迅速,其销售仅次于感冒药,大约占到了20%的比例。
与此同时,目前医学更加注重病人的生活质量,对患各种疾病引起的疼痛的治疗也催生了新的止痛药市场。以癌症疼痛为例,
据我国卫生部统计数据显示,20世纪90年代我国肿瘤发病率已上升为127例/10万人。近年来我国每年新增肿瘤患者160万~170万人,死于恶性肿瘤人数达140万人,肿瘤患者总数估计在450万人左右。肿瘤患者中至少有1/3存在着不同程度的疼痛,其中晚期患者占60%~90%。
市场加速洗牌
由于止痛药使用领域及其广泛,所以各类药物的使用不能一概而论,但就医院处方板块分析,目前主要有四大类镇痛药,分别为阿片类镇痛药、非甾体类镇痛药、植物类镇痛药以及抗偏头痛制剂。非甾体类镇痛药原本是被寄予了厚望,在万络以及西乐葆等一批新型药物的带动下整个市场发展趋势非常喜人。1998年,全国14个典型城市入网医院的非甾体抗炎药购药金额为9903.3万元,到2002年已经增长至14022.3万元(见表1)。
不过由于非甾体类镇痛药的安全性问题,其市场有逐渐下滑的趋势,而阿片类药物则有上升的势头,相互市场取代现象比较明显。以使用较多的癌症镇痛为例,在2002~2004年样本医院镇痛类药物使用情况(见表2)中,阿片类镇痛药的市场分额由2002年的62.4%上升到2004年的68.4%。而非甾体类镇痛药的份额却从2002年的34.4%下跌至2004年的29.2%。
在阿片类镇痛药中,目前主要由曲马多、芬太尼和吗啡3大品种领衔,这三大品种占整个阿片类药品使用金额的70%以上(见附图)。
芬太尼为人工合成的非衍生物类阿片药片,属于强阿片类镇痛药,WHO将它归入第三阶梯镇痛药,其主要通过激动阿片类受体(μ受体)而发挥镇痛作用,止痛作用为相同剂量吗啡的50~100倍。吗啡主要用于晚期癌症患者第三阶梯止痛。从市场趋势来看,曲马多增长后劲十足,该产品是胺苯环醇类人工合成弱阿片类药物,镇痛强度在同等剂量时,相当于吗啡的1/5,但明显强于其他非类固醇抗炎药,适用于中、重度癌性疼痛,被WHO列为癌痛三阶梯止痛治疗的第二阶梯推荐药物。该药与阿片受体的亲和力比吗啡弱6000倍,基本不存在成瘾性,可以长期使用,因此在治疗剂量下,不产生呼吸抑制,不影响心血管功能,也不产生便秘、排尿困难等不良反应。由于该药的管制相对较松,除可以用于癌症疼痛的治疗外,还可以在骨关节炎、腰椎间盘突出症、肩关节周围炎、创伤、手术后疼痛和骨质疏松症所致的腰腿痛中使用。该类药在医保目录中属乙类药物,目前癌痛临床应用中多为缓释片。
复合使用药物增长势头明显
目前镇痛药市场还有一个明显的趋势就是越来越强调联合用药,根据2005年前三季度典型医院用药情况显示,一些复合使用的药物增长势头明显,像氨基比林+安替比林+巴比妥,克痛宁+曲马多+布洛芬,羟考酮+对乙酰氨基酚等。
张克军也认为,鉴于止痛新药不断遭受安全性问题,复方用药将是镇痛药今后新产品开发的一个重要方向,一些新型的复方产品正显示良好的市场前景,目前选择的重点就是将一些原来在临床使用多年,疗效确切,安全性高的药组合在一起。像最近上市的氨酚曲马多片就是由阿片类和非甾体类使用最久的盐酸曲马多和对乙酰氨基酚组合在一起的复方产品,临床研究证实该药主要用于缓解中度及重度疼痛,起效迅速,镇痛效果明显,无成瘾性,不良反应相比其单方制剂和其他参比制剂明显更低,该产品2001年8月在美国由FDA批准上市。西安杨森在去年将该药引进我国,目前正在力拓市场。鉴于该产品在我国无相关产权保护,河南帅克制药在国内企业中抢先仿制了这个产品。张克军透露,该产品目前已经上市,有望培养成为一个镇痛药的大品种,或许依靠新型复方制剂可以参与重新划分止痛药市场的格局。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/12.txt
================================================
三九医药(000999)和三九生化(000403)今日同时发布公告,三九医药转让三九生化38.11%股权事宜获得国资委批准,三九医药将所持有的三九生化6162.1064万股和1906.0936万股国有法人股分别转让给振兴集团有限公司和山西恒源煤业有限公司。
协议签订一年后,股权转让终于取得重大进展,也为三九集团的重组工作打下更坚实的基础。但在这一年中,三九生化却发生了大变化。
根据年报,三九生化2005年度亏损5.21亿元,而2004年亏损额为1.98亿元,同时,每股净资产由2004年的2.55元变为-0.05元,净利润和净资产发生大幅变动。但在双方签订的协议中,收购价格为每股2.55元。
某券商投行人士认为,由于当时双方所签的协议价格是以2004年的审计报告为依据的,时隔一年,公司的审计结果发生重大变化,如果仍然用2004年的审计结果来进行交易似乎并不合适。
也有业内人士认为,签订的协议具有法律效力,国资委的批准是协议生效的前提。如今既然已经获准,就应该按照协议的价格执行。
此前三九生化发布的2005年度报告被审计机构出具了非标意见,14位公司高管也对年报表示质疑。围绕股权转让,相关各方不知是否还会发生争议。但业内人士评价,对公司而言,股权顺利转让,让公司步入正常发展的轨道,这才是最重要的。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/13.txt
================================================
国家食品药品监督管理局南方医药经济研究所主办的首届“中国制药工业百强年会暨第三终端高峰论坛”将于5月15日-17日在成都举行。会议由《医药经济报》、广州标点医药信息有限公司承办。
据主办方透露,年会将发布2005年医药产业的各项运行数据,包括2005年医药销售领先品种,2005年中药销售领先的企业、化学药销售领先的企业排名等。会上即将发布的制药工业百强排名,其数据采集和分析方法与往年不同。2004年的统计数据分别依照化学制剂生产企业、中成药生产企业、医药商业来统计,2005年则是将那些既有工业生产也有商业经营的企业集团作为一个单位来统计,以便彰显这些“医药巨头”在我国医药产业中的重要地位。
会议主要议程还包括“2005中国最具影响力药企发布”、“第三终端高峰论坛等”。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/14.txt
================================================
一场史无前例的非典让股骨头坏死走进了人们的视线。据推测,我国每年的股骨头坏死新发病例在15万~20万之间,累积需治疗的病例在500万~750万之间。
治疗股骨头坏死最理想的方法是保存患者自身股骨头,而达到此目的应早期诊断,早期治疗。
目前股骨头坏死的早期诊断和治疗的有效方法仍是世界性难题。
搜狐健康特邀北亚医院肖正权院长做客专家在线访谈间,与网友们谈股骨头坏死治疗方面的问题。
访谈主题:股骨头坏死
访谈时间:5月12日15:00-16:00
访谈地点:搜狐健康专家在线访谈间(地址稍后公布)
<预先提问>
专家介绍
院长简介:肖正权 主任医师,医学硕士 出身于著名中医世家,肖氏医学第九代传人,国家指定全国百名名老中医肖贯一教授的学术继承人,尽得其祖父真传。就读于黑龙江省中医药大学,是基础医学院院长李冀导师的硕士研究生。先后从师于世界骨伤联合会副主席、中国中医研究院博士生导师董福慧教授,中国工程院院士博士生导师程莘农教授。北京大学医院院长EMBA毕业。
肖正权院长
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/15.txt
================================================
全国治理医药购销领域商业贿赂专项工作正在轰轰烈烈地展开,却有骗子趁机诈骗医务人员。日前,广东省卫生厅向全省医务人员发出了“谨防有人利用打击商业贿赂诈骗”的提示。
治理医药购销领域商业贿赂专项工作于3月底在全国拉开帷幕之后,各地卫生行政部门积极贯彻中央精神,部署专项治理工作。近来,广东省许多医务人员突然收到手机短信或者信件,被告知希望其认真自查自纠,将收受的红包和回扣款项主动上缴汇入某个指定账号,争取宽大处理。然而广东省卫生行政部门还没有设立回扣款上缴账户,更没有向医务人员发出过上缴款项的通知。为此,广东省卫生厅向全省的医疗机构和医务人员下发紧急通知,提醒谨防受骗上当。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/16.txt
================================================
深圳一家医院近日与当地银行合作,推出大额医疗“免息分期付款”的服务项目。患者只要在银行办理一张信用卡,在医院就部分项目治疗时可享受分期付款的优待,利息则由院方支付。
目前享有“免息分期付款”的对象被限定在有稳定经济来源的市民,而且医疗项目较窄。市民认为,大额医疗“免息分期付款”也应向困难市民推广,这样或可解决不能一次交足医疗费患者的一时之急,将付款压力分解,避免延误治疗。
医院替患者掏利息
对于在深圳工作不久的张先生来说,虽然每月有近7000元的稳定收入,但由于买房、买车实行的都是按揭贷款,每月的进账在支付银行贷款后虽有节余,但要一次性支付儿子两万多元的近视矫正手术费用,还存在资金不足的困难。
不过,张先生已经决定在儿子高考结束后,通过“免息分期付款”的方式,在某医院为儿子实行手术。根据医院新近推出的“免息分期付款”医疗服务项目,他只要在银行开个信用卡,银行先替他“埋单”,他今后只要在约定的期限内把银行的钱还上就行。
据率先在深圳市推出“免息分期付款”医疗服务项目的深圳某民营医院有关负责人介绍,近年来,在他们接诊的患者中,总有一些因为暂时费用问题不得不延缓治疗。因此他们一直在寻找一种能够解决这一问题的办法。当他们把这一想法与深圳市银联沟通时,立即得到了他们的支持,并决定联手推出“免息分期付款”服务。
仅两项医疗服务可享此待遇
与其他“按揭消费”不同的是,“免息分期付款”医疗服务手续极为简单,患者的诊疗费用只要在1500元至3万元之间,能支付首期600元的诊疗费,无需进行审批,刷一下约定银行的信用卡就可完成“贷款”过程。
医院推出的“免息分期付款”服务,近期还暂时限定在眼科的准分子近视矫正手术和口腔科的治疗项目上。该院有关负责人介绍说,这样做除了基于积累经验,为今后推广做准备,并最大限度地控制风险考虑外,主要是考虑到这两个项目的费用相对较高,不能一次性付款者相对较多。
无稳定收入难享“免息分期付款”
作为一种新的医疗服务方式,“免息分期付款”一推出就引起部分市民的兴趣,尽管服务项目目前还比较狭窄,市民认为将来完全可以向其他医疗服务项目推广。
记者了解到,目前能享有该项服务的还只是符合取得信用卡条件的患者。一般要有稳定的收入,收入低、真正困难的市民则因为不符合取得信用卡的条件,其大额手术暂难享此待遇。
院方表示,这样做主要是避免医院承担收款风险。
市民建议“穷人”治大病也可“分期付款”
市民王先生认为,最需要“免息分期付款”服务的是家庭困难而又不幸患大病、急病的患者。现实生活中,医院经常碰到一些本来可以治愈的病人,病治到一半,因为费用问题,只好请求出院回家。对这样的病人,出于对自身经济利益的考虑,大多数医院多采取听之任之的态度。
由于目前推行“免息分期付款”仅仅是民营医院,其“宣传”的意图还比较明显。希望国有医院也能考虑创新收费方式,真正让困难户也能看得起病。
王先生建议,医院与银行可以考虑让贫困户提供担保,如房产担保、亲友担保、社会团体担保等方式获得救急款项,再“分期付款”还款。通过这种付款方式,将付款压力分解,避免延误治疗。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/17.txt
================================================
牙防组事件再起风波,此次争议的核心是,口腔用品认证办法的管理对象应该是“保健”品还是“护理”品。
本报独家获悉,4月24日,中国口腔清洁护理用品工业协会(原牙膏工业协会,下称“牙膏协会”)以书面形式向国家认证认可监督管理委员会(下称“认监委”)递交了一份文件,称如果把牙膏纳入认证,将不利于企业的发展。
文件陈述了数条理由,诸如牙膏企业的每个产品都必须认证将会影响到生产和销售的效率等等。
文件还称,即便必须认证,也应该是认证“口腔护理”用品,而不是“口腔保健”用品。
4月13日,认监委发布了《口腔保健用品认证管理办法(征求意见稿)》。
自发布之日以来,围绕这两个词的拉锯始终没有停止。而在意见征求期过后,卫生部法规司将根据程序将这个办法发布成为部颁标准。
“如不采用‘保健’,而采用‘护理’,那么办法将失去意义。”江苏雪豹日化有限公司的董事长童渝于昨日向认监委提交了一份针锋相对的建议。
据知情人士透露,牙膏协会如此激烈反对的原因是,一旦“保健”认证推行,将会由具备专业团队的相关单位来担当。而牙膏协会属于原轻工系统,缺乏这些资源。
“所以他们更倾向于用‘护理’一词,可以名正言顺地把认证权纳入自己的管理范畴。”
相对于强调牙膏功能性的“保健”,“护理”一词在字面的意义更倾向于清洁。前者的主管部门是卫生部门,后者则是牙膏协会。
有消息人士称,现在已有数百家单位开始申请成为合法的牙膏认证机构。
“最后的认证机构已经基本成型。”有关人士透露说,这个即将浮出水面的机构与卫生系统下属的全国牙防组有着紧密的“血缘”关系。
在此之前的牙防组事件中,没有认证资格的全国牙防组违规认证十多年,被北京律师李纲告上法庭。此后,认监委紧急启动认证程序,目前最后的用词尚不明朗。
================================================
FILE: P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/18.txt
================================================
中国人为啥没有西方人高?
饮食人类学家发现,旧石器时代的先祖们茹毛饮血,食肉和生食,身材比我们高大30%左右。今天的西方人,仍然喜欢吃带血丝的肉和生菜色拉,身材也仍旧比吃米面和爱烹调的亚洲人“大一号”。特别是阿尔卑斯山以北的日耳曼民族,分布在德国、荷兰和北欧等地,冬天长,睡眠久,喝鲜奶,食生肉,男人平均身高1.8米以上。其中,荷兰人又酷爱鲜奶和乳制品,人均身高为世界之最。
营养学家发现,谷物和薯类含凝聚素,影响蛋白的吸收和多胺的数量,会使生长缓慢,身材矮小。肉食比素食含有更丰富的营养和性激素原料,生食比熟食含有更多的生长激素原料。人的发育在12岁前主要靠生长激素,12~25岁主要靠性激素。营养和激素水平可以影响当代人身高,持续到四代以后可以显著改变遗传基因。
在百万年漫长的冬夜里,北欧人世世代代长时间睡眠,分泌了充足的生长激素。同时大量的动物性生食提供了丰富的营养和性激素原料,这使得他们能够昂首全人类。在动物性食品中,牛奶含大量激素,它可以使小牛在数月里长高,也可以帮助乳糖酶充足的小孩在数年内长高。喝奶最多、乳糖酶充足的荷兰人,平均身高成为人类的“珠峰”。
以下的最佳营养、睡眠和运动方式,会使你的孩子长得高:
第一、最佳营养。
多吃10类食品,包括鱼类、海鲜、海藻、肉类、蛋类、菌类、坚果、种子、蔬菜、水果,有些可生吃;多吃母乳,多喝鲜奶(如果乳糖酶充足),不加热,以保证营养素和激素原料的摄入。
早、晚是喝奶的最佳时机,早餐时喝奶,给一天的活力提供充分的营养保证;晚上喝牛奶,不但有助于睡眠,而且有助于人体对其营养成份的吸收。最佳营养
据美英两国医学专家研究发现,牛奶中含有两种过去人们未知的催眠物质,其中一种是能够促进睡眠的以血清素合成的色氨酸,由于它的作用,往往只需要一杯牛奶就可以使人入睡;另外一种则是具有类似麻醉镇静作用的天然吗啡类的物质。所以,如果在早晨饮奶,就必然会使人的大脑皮层受到抑制,影响白天的工作和学习。此外,早晨饮奶也不利于消化和吸收,这是因为牛奶的蛋白质要经过胃和小肠的分解形成氨基酸后才能被人体吸收,而早晨空腹状态下,胃、肠的排空是很快的,因此牛奶还来不及消化就被排到了大肠。再有,食物当中被吸收的蛋白质只有在热量充足的基础上才能构成人体组织的一部分,倘若热量不足,吸收的蛋白质就很快变成热量而被消耗掉了,这无疑是一种大材小用的浪费。
因此营养专家们认为,牛奶最好在傍晚或临睡之前半小时饮用。 喝牛奶应当避误区 牛奶含有丰富的营养,其中不但包括必需氨基酸,还有含量高且易吸收的钙,长期饮用对身体非常有好处。不过,饮用牛奶一定要讲究方式,以下是喝牛奶常见的误区,你一定要注意避免———
空腹喝牛奶 空腹饮用牛奶会使肠蠕动增加,牛奶在胃内停留时间缩短,使内部的营养素不能被充分吸收利用。喝牛奶最好与一些淀粉类的食物,如馒头、面包、玉米粥、豆类等同食,有利于消化和吸收。
食物搭配不当 牛奶不宜与含鞣酸的食物同吃,如浓茶、柿子等,这些食物易与牛奶反应结块成团,影响消化。
偏爱高度加工的牛奶 高度加工后的牛奶,其营养价值不一定比鲜牛奶好。这是因为经过多次加工后,牛奶中大多加入了微量元素或无机盐,但这些成分并非每个人都需要补充,所以也就不一定适合每一个人。
第二、睡眠充足。
12岁以下睡眠8小时以上,以保证生长激素的分泌。最佳睡眠
睡眠或觉醒是正常的生理过程,但它不是人为能完全自主控制的活动,而是一个被动过程。它不像人体某些活动可按人的意志,说来就来,要止则止。失眠的人常常难以诱导师自己进入睡眠而苦恼。其实早期的轻度失眠,经过自我调理的办法就常可得益,具体归纳如下:
平常而自然的心态。出现失眠不必过分担心,越是紧张,越是强行入睡,结果适得其反。有些人对连续多天出现失眠更是紧张不安,认为这样下去大脑得不到休息,不是短寿,也会生病。这类担心所致的过分焦虑,对睡眠本身及其健康的危害更大。
寻求并消除失眠的原因。造成失眠的因素颇多,前已提及,只要稍加注意,不难发现。原因消除,失眠自愈,对因疾病引起的失眠症状,要及时求医。不能认为:失眠不过是小问题,算不了病而延误治疗。
身心松驰,有益睡眠。睡前到户外散步一会儿,放松一下精神,上床前或洗个沐浴,或热水泡脚,然后就寝,对顺利入眠有百利而无一害。诱导人体进入睡眠状态,有许多具体方法,例如:放松功,已在民间流传,可以借助。此外,再介绍两种简而易行之法:
闭目入静法。上床之后,先合上双眼,然后把眼睛微微张开一条缝,保持与外界有些接触,虽然,精神活动仍在运作,然而,交感神经活动的张力已大大下降,诱导人体渐渐进入睡意蒙胧状态。
鸣天鼓法。上
gitextract_6ic6_av9/
├── .gitignore
├── LSTM_crf/
│ └── torch_crf.ipynb
├── P000CheatSheet/
│ ├── Matrix_multiplication.ipynb
│ ├── Untitled.ipynb
│ ├── pack_padded_and_pad_packed.ipynb
│ ├── posEmbeding.ipynb
│ ├── py-rouge.ipynb
│ ├── pytorch_nn_cheat_sheet.ipynb
│ ├── struct_tf.ipynb
│ └── torch_gather.ipynb
├── P001-Naive-Bayes-Text-Classifier/
│ ├── Database/
│ │ └── SogouC/
│ │ ├── ClassList.txt
│ │ └── Sample/
│ │ ├── C000008/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000010/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000013/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000014/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000016/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000020/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000022/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ ├── C000023/
│ │ │ ├── 10.txt
│ │ │ ├── 11.txt
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ └── 19.txt
│ │ └── C000024/
│ │ ├── 10.txt
│ │ ├── 11.txt
│ │ ├── 12.txt
│ │ ├── 13.txt
│ │ ├── 14.txt
│ │ ├── 15.txt
│ │ ├── 16.txt
│ │ ├── 17.txt
│ │ ├── 18.txt
│ │ └── 19.txt
│ ├── NaiveBayes-TextClassifier.ipynb
│ ├── stopwords_cn.txt
│ └── 朴素贝叶斯新闻分类.html
├── P002-Pytorch-Two-Layers-Neural-Net/
│ └── two_layer_neural_net.ipynb
├── P003-pytorch-Language-Model/
│ ├── _1_lm_lstm.ipynb
│ ├── _2_lm_lstm_bll.ipynb
│ └── _3_lm_lstm_lc.ipynb
├── P004-Pytorch-Word2Vec/
│ └── PytorchWord2Vec.ipynb
├── P005-Pytorch-Text-Classifer/
│ ├── _0_情感分类_词向量平均.ipynb
│ ├── _1_attention_wordavg.ipynb
│ └── _2_self_attention_wordavg.ipynb
├── P006TheAnnotatedTransformer/
│ ├── model_transformer.ipynb
│ └── test.ipynb
├── P007PytorchPointerGeneratorNetwork/
│ ├── make_finished_files.ipynb
│ ├── pointer-generator/
│ │ ├── __init__.py
│ │ ├── attention_decoder.py
│ │ ├── batcher.py
│ │ ├── beam_search.py
│ │ ├── data.py
│ │ ├── decode.py
│ │ ├── inspect_checkpoint.py
│ │ ├── model.py
│ │ ├── run_summarization.py
│ │ └── util.py
│ ├── pointer-generator-network-test.ipynb
│ ├── rouge_test.ipynb
│ ├── test.ipynb
│ └── weibo_news_preprocession.ipynb
├── P008GPT2TextSummary/
│ ├── Untitled.ipynb
│ └── gpt2_text_summary.ipynb
├── P009StructureLearning/
│ ├── POS-RNN-hw.ipynb
│ ├── dev.txt
│ ├── pos-hmm-hw-solution.ipynb
│ ├── pos-hmm-hw.ipynb
│ └── train.txt
├── P010Model/
│ ├── data.pk
│ └── model_transformer.py
├── P011WordSegmenting/
│ └── chinese_word_segmenting.ipynb
├── P012translate/
│ ├── machine_translation.ipynb
│ └── torch_test.ipynb
├── P013BertCode/
│ └── bertTrainTest.ipynb
├── P014Aho-Corasick-algorithm/
│ └── AC.ipynb
├── named_entity_recognition/
│ ├── .gitignore
│ ├── README.md
│ ├── ResumeNER/
│ │ ├── dev.char.bmes
│ │ ├── test.char.bmes
│ │ └── train.char.bmes
│ ├── ckpts/
│ │ ├── bilstm.pkl
│ │ ├── bilstm_crf.pkl
│ │ ├── crf.pkl
│ │ └── hmm.pkl
│ ├── data.py
│ ├── evaluate.py
│ ├── evaluating.py
│ ├── main.py
│ ├── models/
│ │ ├── __init__.py
│ │ ├── bilstm.py
│ │ ├── bilstm_crf.py
│ │ ├── config.py
│ │ ├── crf.py
│ │ ├── hmm.py
│ │ └── util.py
│ ├── output.txt
│ ├── requirement.txt
│ ├── test.py
│ └── utils.py
└── word2vector/
├── fasttext/
│ ├── README.md
│ ├── fasttext.py
│ ├── run.sh
│ ├── utils.py
│ └── wget.py
├── glove/
│ ├── README.md
│ ├── glove.py
│ ├── run.sh
│ ├── utils.py
│ └── wget.py
├── ngrams/
│ ├── README.md
│ ├── gen_model.sh
│ └── lm.py
├── requirements.txt
└── word2vec/
├── README.md
├── debug.ipynb
├── run.sh
├── utils.py
├── wget.py
├── word2vec-python3.ipynb
└── word2vec.py
SYMBOL INDEX (331 symbols across 31 files)
FILE: P007PytorchPointerGeneratorNetwork/pointer-generator/attention_decoder.py
function attention_decoder (line 27) | def attention_decoder(decoder_inputs, initial_state, encoder_states, enc...
function linear (line 184) | def linear(args, output_size, bias, bias_start=0.0, scope=None):
FILE: P007PytorchPointerGeneratorNetwork/pointer-generator/batcher.py
class Example (line 28) | class Example(object):
method __init__ (line 31) | def __init__(self, article, abstract_sentences, vocab, hps):
method get_dec_inp_targ_seqs (line 79) | def get_dec_inp_targ_seqs(self, sequence, max_len, start_id, stop_id):
method pad_decoder_inp_targ (line 103) | def pad_decoder_inp_targ(self, max_len, pad_id):
method pad_encoder_input (line 111) | def pad_encoder_input(self, max_len, pad_id):
class Batch (line 120) | class Batch(object):
method __init__ (line 123) | def __init__(self, example_list, hps, vocab):
method init_encoder_seq (line 136) | def init_encoder_seq(self, example_list, hps):
method init_decoder_seq (line 184) | def init_decoder_seq(self, example_list, hps):
method store_orig_strings (line 210) | def store_orig_strings(self, example_list):
class Batcher (line 217) | class Batcher(object):
method __init__ (line 222) | def __init__(self, data_path, vocab, hps, single_pass):
method next_batch (line 271) | def next_batch(self):
method fill_example_queue (line 289) | def fill_example_queue(self):
method fill_batch_queue (line 311) | def fill_batch_queue(self):
method watch_threads (line 339) | def watch_threads(self):
method text_generator (line 359) | def text_generator(self, example_generator):
FILE: P007PytorchPointerGeneratorNetwork/pointer-generator/beam_search.py
class Hypothesis (line 25) | class Hypothesis(object):
method __init__ (line 28) | def __init__(self, tokens, log_probs, state, attn_dists, p_gens, cover...
method extend (line 46) | def extend(self, token, log_prob, state, attn_dist, p_gen, coverage):
method latest_token (line 67) | def latest_token(self):
method log_prob (line 71) | def log_prob(self):
method avg_log_prob (line 76) | def avg_log_prob(self):
function run_beam_search (line 81) | def run_beam_search(sess, model, vocab, batch):
function sort_hyps (line 164) | def sort_hyps(hyps):
FILE: P007PytorchPointerGeneratorNetwork/pointer-generator/data.py
class Vocab (line 37) | class Vocab(object):
method __init__ (line 40) | def __init__(self, vocab_file, max_size):
method word2id (line 77) | def word2id(self, word):
method id2word (line 83) | def id2word(self, word_id):
method size (line 89) | def size(self):
method write_metadata (line 93) | def write_metadata(self, fpath):
function example_generator (line 108) | def example_generator(data_path, single_pass):
function article2ids (line 144) | def article2ids(article_words, vocab):
function abstract2ids (line 171) | def abstract2ids(abstract_words, vocab, article_oovs):
function outputids2words (line 196) | def outputids2words(id_list, vocab, article_oovs):
function abstract2sents (line 222) | def abstract2sents(abstract):
function show_art_oovs (line 242) | def show_art_oovs(article, vocab):
function show_abs_oovs (line 251) | def show_abs_oovs(abstract, vocab, article_oovs):
FILE: P007PytorchPointerGeneratorNetwork/pointer-generator/decode.py
class BeamSearchDecoder (line 35) | class BeamSearchDecoder(object):
method __init__ (line 38) | def __init__(self, model, batcher, vocab):
method decode (line 77) | def decode(self):
method write_for_rouge (line 127) | def write_for_rouge(self, reference_sents, decoded_words, ex_index):
method write_for_attnvis (line 165) | def write_for_attnvis(self, article, abstract, decoded_words, attn_dis...
function print_results (line 192) | def print_results(article, abstract, decoded_output):
function make_html_safe (line 201) | def make_html_safe(s):
function rouge_eval (line 208) | def rouge_eval(ref_dir, dec_dir):
function rouge_log (line 220) | def rouge_log(results_dict, dir_to_write):
function get_decode_dir_name (line 243) | def get_decode_dir_name(ckpt_name):
FILE: P007PytorchPointerGeneratorNetwork/pointer-generator/model.py
class SummarizationModel (line 28) | class SummarizationModel(object):
method __init__ (line 31) | def __init__(self, hps, vocab):
method _add_placeholders (line 35) | def _add_placeholders(self):
method _make_feed_dict (line 56) | def _make_feed_dict(self, batch, just_enc=False):
method _add_encoder (line 76) | def _add_encoder(self, encoder_inputs, seq_len):
method _reduce_states (line 97) | def _reduce_states(self, fw_st, bw_st):
method _add_decoder (line 124) | def _add_decoder(self, inputs):
method _calc_final_dist (line 146) | def _calc_final_dist(self, vocab_dists, attn_dists):
method _add_emb_vis (line 185) | def _add_emb_vis(self, embedding_var):
method _add_seq2seq (line 199) | def _add_seq2seq(self):
method _add_train_op (line 288) | def _add_train_op(self):
method build_graph (line 309) | def build_graph(self):
method run_train_step (line 323) | def run_train_step(self, sess, batch):
method run_eval_step (line 336) | def run_eval_step(self, sess, batch):
method run_encoder (line 348) | def run_encoder(self, sess, batch):
method decode_onestep (line 368) | def decode_onestep(self, sess, batch, latest_tokens, enc_states, dec_i...
function _mask_and_avg (line 447) | def _mask_and_avg(values, padding_mask):
function _coverage_loss (line 464) | def _coverage_loss(attn_dists, padding_mask):
FILE: P007PytorchPointerGeneratorNetwork/pointer-generator/run_summarization.py
function calc_running_avg_loss (line 83) | def calc_running_avg_loss(loss, running_avg_loss, summary_writer, step, ...
function restore_best_model (line 110) | def restore_best_model():
function convert_to_coverage_model (line 135) | def convert_to_coverage_model():
function setup_training (line 159) | def setup_training(model, batcher):
function run_training (line 190) | def run_training(model, batcher, sess_context_manager, sv, summary_writer):
function run_eval (line 228) | def run_eval(model, batcher, vocab):
function main (line 275) | def main(unused_argv):
FILE: P007PytorchPointerGeneratorNetwork/pointer-generator/util.py
function get_config (line 24) | def get_config():
function load_ckpt (line 30) | def load_ckpt(saver, sess, ckpt_dir="train"):
FILE: P010Model/model_transformer.py
class EncoderDecoder (line 22) | class EncoderDecoder(nn.Module):
method __init__ (line 26) | def __init__(self, encoder, decoder, src_embed, tgt_embed, generator):
method forward (line 34) | def forward(self, src, tgt, src_mask, tgt_mask):
method encode (line 42) | def encode(self, src, src_mask):
method decode (line 45) | def decode(self, memory, src_mask, tgt, tgt_mask):
class Generator (line 49) | class Generator(nn.Module):
method __init__ (line 54) | def __init__(self, d_model, vocab):
method forward (line 58) | def forward(self, x):
function clones (line 63) | def clones(module, N):
class Encoder (line 71) | class Encoder(nn.Module):
method __init__ (line 73) | def __init__(self, layer, N):
method forward (line 78) | def forward(self, x, mask):
class LayerNorm (line 84) | class LayerNorm(nn.Module):
method __init__ (line 86) | def __init__(self, features, eps=1e-6):
method forward (line 92) | def forward(self, x):
class SublayerConnection (line 98) | class SublayerConnection(nn.Module):
method __init__ (line 103) | def __init__(self, size, dropout):
method forward (line 108) | def forward(self, x, sublayer):
class EncoderLayer (line 112) | class EncoderLayer(nn.Module):
method __init__ (line 114) | def __init__(self, size, self_attn, feed_forward, dropout):
method forward (line 121) | def forward(self, x, mask):
class Decoder (line 129) | class Decoder(nn.Module):
method __init__ (line 131) | def __init__(self, layer, N):
method forward (line 136) | def forward(self, x, memory, src_mask, tgt_mask):
class DecoderLayer (line 142) | class DecoderLayer(nn.Module):
method __init__ (line 144) | def __init__(self, size, self_attn, src_attn, feed_forward, dropout):
method forward (line 152) | def forward(self, x, memory, src_mask, tgt_mask):
function subsequent_mask (line 159) | def subsequent_mask(size):
function attention (line 167) | def attention(query, key, value, mask=None, dropout=None):
class MultiHeadedAttention (line 180) | class MultiHeadedAttention(nn.Module):
method __init__ (line 181) | def __init__(self, h, d_model, dropout=0.1):
method forward (line 192) | def forward(self, query, key, value, mask=None):
method __init__ (line 289) | def __init__(self, h, d_model, dropout=0.1):
method forward (line 300) | def forward(self, query, key, value, mask=None):
class PositionwiseFeedForward (line 213) | class PositionwiseFeedForward(nn.Module):
method __init__ (line 215) | def __init__(self, d_model, d_ff, dropout=0.1):
method forward (line 221) | def forward(self, x):
class Embeddings (line 225) | class Embeddings(nn.Module):
method __init__ (line 226) | def __init__(self, d_model, vocab):
method forward (line 231) | def forward(self, x):
class PositionalEncoding (line 236) | class PositionalEncoding(nn.Module):
method __init__ (line 238) | def __init__(self, d_model, dropout, max_len=5000):
method forward (line 253) | def forward(self, x):
function make_model (line 261) | def make_model(src_vocab, tgt_vocab, N=6,
class MultiHeadedAttention (line 288) | class MultiHeadedAttention(nn.Module):
method __init__ (line 181) | def __init__(self, h, d_model, dropout=0.1):
method forward (line 192) | def forward(self, query, key, value, mask=None):
method __init__ (line 289) | def __init__(self, h, d_model, dropout=0.1):
method forward (line 300) | def forward(self, query, key, value, mask=None):
class Batch (line 398) | class Batch(object):
method __init__ (line 400) | def __init__(self, src, trg=None, pad=0):
method make_std_mask (line 410) | def make_std_mask(tgt, pad):
function run_epoch (line 427) | def run_epoch(data_iter, model, loss_compute, device):
function batch_size_fn (line 462) | def batch_size_fn(new, count, sofar):
class NoamOpt (line 490) | class NoamOpt(object):
method __init__ (line 492) | def __init__(self, model_size, factor, warmup, optimizer):
method step (line 500) | def step(self):
method rate (line 509) | def rate(self, step = None):
function get_std_opt (line 516) | def get_std_opt(model):
class LabelSmoothing (line 543) | class LabelSmoothing(nn.Module):
method __init__ (line 545) | def __init__(self, size, padding_idx, smoothing=0.0):
method forward (line 554) | def forward(self, x, target):
function data_gen (line 605) | def data_gen(V, batch, nbatches):
class SimpleLossCompute (line 619) | class SimpleLossCompute(object):
method __init__ (line 621) | def __init__(self, generator, criterion, opt=None):
method __call__ (line 626) | def __call__(self, x, y, norm):
FILE: named_entity_recognition/data.py
function build_corpus (line 5) | def build_corpus(split, make_vocab=True, data_dir="./ResumeNER"):
function build_map (line 34) | def build_map(lists):
FILE: named_entity_recognition/evaluate.py
function hmm_train_eval (line 11) | def hmm_train_eval(train_data, test_data, word2id, tag2id, remove_O=False):
function crf_train_eval (line 36) | def crf_train_eval(train_data, test_data, remove_O=False):
function bilstm_train_and_eval (line 55) | def bilstm_train_and_eval(train_data, dev_data, test_data,
function ensemble_evaluate (line 83) | def ensemble_evaluate(results, targets, remove_O=False):
FILE: named_entity_recognition/evaluating.py
class Metrics (line 6) | class Metrics(object):
method __init__ (line 9) | def __init__(self, golden_tags, predict_tags, remove_O=False):
method cal_precision (line 33) | def cal_precision(self):
method cal_recall (line 42) | def cal_recall(self):
method cal_f1 (line 50) | def cal_f1(self):
method report_scores (line 57) | def report_scores(self):
method count_correct_tags (line 98) | def count_correct_tags(self):
method _cal_weighted_average (line 110) | def _cal_weighted_average(self):
method _remove_Otags (line 130) | def _remove_Otags(self):
method report_confusion_matrix (line 147) | def report_confusion_matrix(self):
FILE: named_entity_recognition/main.py
function main (line 8) | def main():
FILE: named_entity_recognition/models/bilstm.py
class BiLSTM (line 6) | class BiLSTM(nn.Module):
method __init__ (line 7) | def __init__(self, vocab_size, emb_size, hidden_size, out_size):
method forward (line 22) | def forward(self, sents_tensor, lengths):
method test (line 34) | def test(self, sents_tensor, lengths, _):
FILE: named_entity_recognition/models/bilstm_crf.py
class BILSTM_Model (line 13) | class BILSTM_Model(object):
method __init__ (line 14) | def __init__(self, vocab_size, out_size, crf=True):
method train (line 52) | def train(self, word_lists, tag_lists,
method train_step (line 85) | def train_step(self, batch_sents, batch_tags, word2id, tag2id):
method validate (line 105) | def validate(self, dev_word_lists, dev_tag_lists, word2id, tag2id):
method test (line 137) | def test(self, word_lists, tag_lists, word2id, tag2id):
class BiLSTM_CRF (line 174) | class BiLSTM_CRF(nn.Module):
method __init__ (line 175) | def __init__(self, vocab_size, emb_size, hidden_size, out_size):
method forward (line 190) | def forward(self, sents_tensor, lengths):
method test (line 203) | def test(self, test_sents_tensor, lengths, tag2id):
FILE: named_entity_recognition/models/config.py
class TrainingConfig (line 2) | class TrainingConfig(object):
class LSTMConfig (line 10) | class LSTMConfig(object):
FILE: named_entity_recognition/models/crf.py
class CRFModel (line 6) | class CRFModel(object):
method __init__ (line 7) | def __init__(self,
method train (line 21) | def train(self, sentences, tag_lists):
method test (line 25) | def test(self, sentences):
FILE: named_entity_recognition/models/hmm.py
class HMM (line 4) | class HMM(object):
method __init__ (line 5) | def __init__(self, N, M):
method train (line 20) | def train(self, word_lists, tag_lists, word2id, tag2id):
method test (line 62) | def test(self, word_lists, word2id, tag2id):
method decoding (line 69) | def decoding(self, word_list, word2id, tag2id):
FILE: named_entity_recognition/models/util.py
function word2features (line 7) | def word2features(sent, i):
function sent2features (line 26) | def sent2features(sent):
function tensorized (line 33) | def tensorized(batch, maps):
function sort_by_lengths (line 50) | def sort_by_lengths(word_lists, tag_lists):
function cal_loss (line 63) | def cal_loss(logits, targets, tag2id):
function cal_lstm_crf_loss (line 88) | def cal_lstm_crf_loss(crf_scores, targets, tag2id):
function indexed (line 155) | def indexed(targets, tagset_size, start_id):
FILE: named_entity_recognition/test.py
function main (line 14) | def main():
FILE: named_entity_recognition/utils.py
function merge_maps (line 4) | def merge_maps(dict1, dict2):
function save_model (line 12) | def save_model(model, file_name):
function load_model (line 18) | def load_model(file_name):
function extend_maps (line 27) | def extend_maps(word2id, tag2id, for_crf=True):
function prepocess_data_for_lstmcrf (line 42) | def prepocess_data_for_lstmcrf(word_lists, tag_lists, test=False):
function flatten_lists (line 52) | def flatten_lists(lists):
FILE: word2vector/fasttext/fasttext.py
function train_sentence_sg (line 43) | def train_sentence_sg(model, sentence, alpha, is_ft=False, work=None):
function train_sentence_cbow (line 163) | def train_sentence_cbow(model, sentence, alpha, is_ft=False, work=None, ...
class Vocab (line 284) | class Vocab(object):
method __init__ (line 288) | def __init__(self, **kwargs):
method __lt__ (line 305) | def __lt__(self, vocab):
method __str__ (line 308) | def __str__(self):
class FastText (line 315) | class FastText(SaveAndLoad):
method __init__ (line 316) | def __init__(self, sentences=None, size=100, alpha=0.025,
method get_latest_training_loss (line 384) | def get_latest_training_loss(self):
method __reset_vocab (line 387) | def __reset_vocab(self):
method build_vocab (line 395) | def build_vocab(self, sentences):
method build_ngrams (line 426) | def build_ngrams(self):
method reset_weights (line 452) | def reset_weights(self):
method make_cum_table (line 475) | def make_cum_table(self, power=0.75, domain=2**31 - 1):
method create_binary_tree (line 496) | def create_binary_tree(self):
method train (line 536) | def train(self, sentences, total_words=None, word_count=0, chunksize=1...
method __getitem__ (line 623) | def __getitem__(self, word):
method __contains__ (line 632) | def __contains__(self, word):
method similarity (line 636) | def similarity(self, w1, w2):
method init_sims (line 648) | def init_sims(self):
method most_similar (line 657) | def most_similar(self, positive=[], negative=[], topn=10):
method word_vec (line 695) | def word_vec(self, word, use_norm=False):
method compute_ngrams (line 723) | def compute_ngrams(self, word, min_n, max_n):
method ft_hash (line 747) | def ft_hash(self, string):
FILE: word2vector/fasttext/utils.py
function zeros_aligned (line 22) | def zeros_aligned(shape, dtype, order='C', align=128):
function chunkize_serial (line 30) | def chunkize_serial(iterable, chunksize, as_numpy=False):
function expit (line 53) | def expit(x):
function unitvec (line 57) | def unitvec(vec):
function cossim (line 81) | def cossim(vec1, vec2):
class RepeatCorpusNTimes (line 95) | class RepeatCorpusNTimes(object):
method __init__ (line 104) | def __init__(self, corpus, n):
method __iter__ (line 116) | def __iter__(self):
class SaveAndLoad (line 122) | class SaveAndLoad(object):
method __init__ (line 126) | def __init__(self):
method save (line 129) | def save(self, fname):
method load (line 135) | def load(cls, fname):
class Text8Corpus (line 142) | class Text8Corpus(object):
method __init__ (line 148) | def __init__(self, fname, sent_num=None, sent_len=1000):
method __iter__ (line 156) | def __iter__(self):
FILE: word2vector/fasttext/wget.py
function filename_from_url (line 36) | def filename_from_url(url):
function filename_from_headers (line 43) | def filename_from_headers(headers):
function filename_fix_existing (line 72) | def filename_fix_existing(filename):
function get_console_width (line 94) | def get_console_width():
function bar_thermometer (line 152) | def bar_thermometer(current, total, width=80):
function bar_adaptive (line 166) | def bar_adaptive(current, total, width=80):
function callback_progress (line 252) | def callback_progress(blocks, block_size, total_size, bar_function):
class ThrowOnErrorOpener (line 282) | class ThrowOnErrorOpener(urllib.FancyURLopener):
method http_error_default (line 283) | def http_error_default(self, url, fp, errcode, errmsg, headers):
function download (line 286) | def download(url, out=None, bar=bar_adaptive):
FILE: word2vector/glove/glove.py
class Glove (line 42) | class Glove(SaveAndLoad):
method __init__ (line 43) | def __init__(self, corpus=None, size=100, alpha=0.05,
method build_vocab (line 99) | def build_vocab(self, corpus):
method build_cooccurance_matrix (line 114) | def build_cooccurance_matrix(self, corpus):
method iter_cooccurance_matrix (line 135) | def iter_cooccurance_matrix(self):
method train (line 149) | def train(self, x_max=100, power=0.75):
method reset_params (line 234) | def reset_params(self):
method most_similar (line 246) | def most_similar(self, positive=[], negative=[], topn=10):
method get_vocab (line 286) | def get_vocab(self):
method get_embeddings (line 293) | def get_embeddings(self):
FILE: word2vector/glove/utils.py
function zeros_aligned (line 22) | def zeros_aligned(shape, dtype, order='C', align=128):
function chunkize_serial (line 30) | def chunkize_serial(iterable, chunksize, as_numpy=False):
function expit (line 53) | def expit(x):
function unitvec (line 57) | def unitvec(vec):
function cossim (line 81) | def cossim(vec1, vec2):
class RepeatCorpusNTimes (line 95) | class RepeatCorpusNTimes(object):
method __init__ (line 104) | def __init__(self, corpus, n):
method __iter__ (line 116) | def __iter__(self):
class SaveAndLoad (line 122) | class SaveAndLoad(object):
method __init__ (line 126) | def __init__(self):
method save (line 129) | def save(self, fname):
method load (line 135) | def load(cls, fname):
class Text8Corpus (line 142) | class Text8Corpus(object):
method __init__ (line 148) | def __init__(self, fname, sent_num=None, sent_len=1000):
method __iter__ (line 156) | def __iter__(self):
FILE: word2vector/glove/wget.py
function filename_from_url (line 36) | def filename_from_url(url):
function filename_from_headers (line 43) | def filename_from_headers(headers):
function filename_fix_existing (line 72) | def filename_fix_existing(filename):
function get_console_width (line 94) | def get_console_width():
function bar_thermometer (line 152) | def bar_thermometer(current, total, width=80):
function bar_adaptive (line 166) | def bar_adaptive(current, total, width=80):
function callback_progress (line 252) | def callback_progress(blocks, block_size, total_size, bar_function):
class ThrowOnErrorOpener (line 282) | class ThrowOnErrorOpener(urllib.FancyURLopener):
method http_error_default (line 283) | def http_error_default(self, url, fp, errcode, errmsg, headers):
function download (line 286) | def download(url, out=None, bar=bar_adaptive):
FILE: word2vector/ngrams/lm.py
class Test (line 45) | class Test(unittest.TestCase):
method setUp (line 49) | def setUp(self):
method tearDown (line 55) | def tearDown(self):
method test_prob (line 58) | def test_prob(self):
method test_perplexity (line 62) | def test_perplexity(self):
function test (line 66) | def test():
FILE: word2vector/word2vec/utils.py
function zeros_aligned (line 22) | def zeros_aligned(shape, dtype, order='C', align=128):
function chunkize_serial (line 30) | def chunkize_serial(iterable, chunksize, as_numpy=False):
function expit (line 53) | def expit(x):
function unitvec (line 57) | def unitvec(vec):
function cossim (line 81) | def cossim(vec1, vec2):
class RepeatCorpusNTimes (line 95) | class RepeatCorpusNTimes(object):
method __init__ (line 104) | def __init__(self, corpus, n):
method __iter__ (line 116) | def __iter__(self):
class SaveAndLoad (line 122) | class SaveAndLoad(object):
method __init__ (line 126) | def __init__(self):
method save (line 129) | def save(self, fname):
method load (line 135) | def load(cls, fname):
class Text8Corpus (line 142) | class Text8Corpus(object):
method __init__ (line 148) | def __init__(self, fname, sent_num=None, sent_len=1000):
method __iter__ (line 156) | def __iter__(self):
FILE: word2vector/word2vec/wget.py
function filename_from_url (line 36) | def filename_from_url(url):
function filename_from_headers (line 43) | def filename_from_headers(headers):
function filename_fix_existing (line 72) | def filename_fix_existing(filename):
function get_console_width (line 94) | def get_console_width():
function bar_thermometer (line 152) | def bar_thermometer(current, total, width=80):
function bar_adaptive (line 166) | def bar_adaptive(current, total, width=80):
function callback_progress (line 252) | def callback_progress(blocks, block_size, total_size, bar_function):
class ThrowOnErrorOpener (line 282) | class ThrowOnErrorOpener(urllib.FancyURLopener):
method http_error_default (line 283) | def http_error_default(self, url, fp, errcode, errmsg, headers):
function download (line 286) | def download(url, out=None, bar=bar_adaptive):
FILE: word2vector/word2vec/word2vec.py
function train_sentence_sg (line 44) | def train_sentence_sg(model, sentence, alpha, work=None):
function train_sentence_cbow (line 134) | def train_sentence_cbow(model, sentence, alpha, work=None, cbow_mean=True):
class Vocab (line 224) | class Vocab(object):
method __init__ (line 228) | def __init__(self, **kwargs):
method __lt__ (line 245) | def __lt__(self, vocab):
method __str__ (line 248) | def __str__(self):
class Word2Vec (line 254) | class Word2Vec(SaveAndLoad):
method __init__ (line 255) | def __init__(self, sentences=None, size=100, alpha=0.025,
method get_latest_training_loss (line 307) | def get_latest_training_loss(self):
method __reset_vocab (line 311) | def __reset_vocab(self):
method build_vocab (line 318) | def build_vocab(self, sentences):
method reset_weights (line 347) | def reset_weights(self):
method make_cum_table (line 367) | def make_cum_table(self, power=0.75, domain=2**31 - 1):
method create_binary_tree (line 388) | def create_binary_tree(self):
method train (line 428) | def train(self, sentences, total_words=None, word_count=0, chunksize=1...
method __getitem__ (line 515) | def __getitem__(self, word):
method __contains__ (line 524) | def __contains__(self, word):
method similarity (line 528) | def similarity(self, w1, w2):
method init_sims (line 540) | def init_sims(self):
method most_similar (line 546) | def most_similar(self, positive=[], negative=[], topn=10):
method accuracy (line 587) | def accuracy(self, questions, restrict_vocab=30000):
Copy disabled (too large)
Download .json
Condensed preview — 188 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (13,634K chars).
[
{
"path": ".gitignore",
"chars": 1401,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# .idea\n.idea\n\n# Distrib"
},
{
"path": "LSTM_crf/torch_crf.ipynb",
"chars": 68933,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## Bi-LSTM Conditional Random Field"
},
{
"path": "P000CheatSheet/Matrix_multiplication.ipynb",
"chars": 1838,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P000CheatSheet/Untitled.ipynb",
"chars": 2986,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P000CheatSheet/pack_padded_and_pad_packed.ipynb",
"chars": 10776,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## pack_padded_sequence\\n\",\n \"- "
},
{
"path": "P000CheatSheet/posEmbeding.ipynb",
"chars": 3430,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 10,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n"
},
{
"path": "P000CheatSheet/py-rouge.ipynb",
"chars": 6981,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P000CheatSheet/pytorch_nn_cheat_sheet.ipynb",
"chars": 44867,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P000CheatSheet/struct_tf.ipynb",
"chars": 13621,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## tf.example\"\n ]\n },\n {\n \"ce"
},
{
"path": "P000CheatSheet/torch_gather.ipynb",
"chars": 7569,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 6,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/ClassList.txt",
"chars": 108,
"preview": "C000008\t财经\r\nC000010\tIT\r\nC000013\t健康\r\nC000014\t体育\r\nC000016\t旅游\r\nC000020\t教育\r\nC000022\t招聘\r\nC000023\t文化\r\nC000024\t军事\r\n"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/10.txt",
"chars": 2191,
"preview": " 本报记者陈雪频实习记者唐翔发自上海\r\n 一家刚刚成立两年的网络支付公司,它的目标是成为市值100亿美元的上市公司。\r\n 这家公司叫做快钱,说这句话的是快钱的CEO关国光。他之前曾任网易的高级副总裁,负责过网易的上市工作。对于为什么选"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/11.txt",
"chars": 312,
"preview": " 焦点个股:苏宁电器(002024),该股早市涨停开盘,其后虽在获利盘的抛压下略有回落但在强大买盘的推动下该股已经再次封于涨停,可见主力资金积极拉升的意愿相当强烈。\r\n 盘面解析:1.技术层面上,早市指数小幅探低后迅速回升,在中石化强势"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/12.txt",
"chars": 979,
"preview": " 智威汤逊全球CEO:大众传媒依然是品牌传播的好选择\r\n 本报记者康健发自上海\r\n “想让品牌更快、更广地进入消费者,大众传媒仍然是很好的选择。”智威汤逊全球CEO Michael Maedel近日在上海的办公室告诉《第一财经(相关:"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/13.txt",
"chars": 658,
"preview": " 新华网上海5月10日电 中国石化集团上海工程有限公司最近与中石化第二建设公司、荷兰AK公司组成联合体,一举成为沙特延布年产40万吨聚乙烯和40万吨聚丙烯生产装置项目的总承包商,总承包金额7.5亿美元,其中上海工程公司承包金额4.65亿"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/14.txt",
"chars": 771,
"preview": " 根据艾瑞市场咨询有限公司发布的2005年《中国网上支付研究》报告,中国网上支付的市场规模在2001 年为9 亿元,2004 年就达到了75亿元,年均复合增长率为102.7%。艾瑞预测2007年我国网上支付市场规模将达到人民币605亿元。"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/15.txt",
"chars": 258,
"preview": " 本报讯 (记者李英辉)已经退出北京市场两年多的车贷险业务重现市场。记者昨天获悉,安邦财险将在本月启动车贷险业务。\r\n 购买车贷险后,一旦贷款人不能还贷款,保险公司要负责赔偿银行贷款。该险种面市后,曾极大地促进了银行车贷业务的发展。由于"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/16.txt",
"chars": 244,
"preview": " 本报北京5月9日讯 记者潘跃今天从中国红十字会总会举办的“博爱论坛”上获悉:目前,全国已有641个县(市、区)开展试点工作,有1.63亿农民参加了合作医疗。试点地区农民的医疗负担有所减轻,因病致贫、因病返贫的情况有所缓解。\r\n 据有"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/17.txt",
"chars": 2737,
"preview": " 设想一下,如果某家银行花了大力气进行品牌建设,可顾客每每面对的是铁栅栏后面一张冷冰冰的脸,敷衍推诿,甚至恶语相向,他们自然很难相信这家银行所作的品牌承诺,也会动摇对银行的信任\r\n 本报记者范松璐发自上海\r\n 在一个金融服务品牌提升研"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/18.txt",
"chars": 2575,
"preview": "\r\n 如果你周围的不少人都晋升了,那就该好好反省自己了。看看以下种种晋升“绝症”,是否有自己的身影呢?\r\n 职位成功晋级,事业更上层楼,这是不少经理人的职业目标。然而,很多经理人努力打拼却依旧还在原地徘徊。\r\n 在竞争社会,当你不能升"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000008/19.txt",
"chars": 258,
"preview": " 本报讯 (记者段志敏)中国移动北京地区手机资费刚刚下调,零售终端迅速作出反应。昨天下午,北京苏宁电器宣布本周末起手机大降价。包括诺基亚、摩托罗拉、索爱、三星等主流品牌在内的手机降幅将超过20%。\r\n 北京苏宁电器市场部经理徐正飞说,此"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/10.txt",
"chars": 177,
"preview": "\r\n 本报讯 (记者 王京) 联想THINKPAD近期几乎全系列笔记本电脑降价促销,最高降幅达到800美元,降幅达到42%。这是记者昨天从联想美国官方网站发现的。\r\n 联想相关人士表示,这是为纪念新联想成立1周年而在美国市场推出的促销,"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/11.txt",
"chars": 296,
"preview": " 本报讯 全球最大个人电脑制造商戴尔公司8日说,由于市场竞争激烈,以及定价策略不当,该公司今年第一季度盈利预计有所下降。消息发布之后,戴尔股价一度下跌近6%,创下一年来的新低。\r\n 戴尔公司估计,其第一季度收入约为142亿美元,每股收益"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/12.txt",
"chars": 392,
"preview": " 本报讯(记者 陆一波)售价8.5万港元的《文渊阁四库全书电子版》在易趣网上竟以60元的价格拍卖。为此,拥有该电子出版物版权的迪志文化出版有限公司将共同经营易趣网的上海易趣贸易有限公司和亿贝易趣网络信息服务(上海)有限公司告进法院。昨天,"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/13.txt",
"chars": 3710,
"preview": " 关键字:裁员 美国在线 呼叫中心\r\n 标题:美国在线计划裁员1300人占全球员工总数7%\r\n 时间:美国东部时间5月9日上午10时30分消息\r\n 来源:英文雅虎\r\n 内容摘要:美国在线计划裁员1300人,约占其全球员工总数的7%"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/14.txt",
"chars": 492,
"preview": "\r\n 本报讯(记者 马海邻)记者昨天得到确切消息,新浪公司今天将宣布由曹国伟接替汪延担任CEO,汪延则任董事会重要职位。\r\n 曹国伟此前是新浪总裁兼CFO(首席财务官)。他于1999年加入新浪,任主管财务的副总,之后任职CFO、CFO兼"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/15.txt",
"chars": 1258,
"preview": " 全国25个入围项目 北京考古项目遗憾落选\r\n 十大考古新发现揭晓\r\n 本报记者黄涛报道 经过两天的专家评审,由中国文物报社和中国考古学会主办的“2005年度全国十大考古新发现”昨天晚上7点正式揭晓。25个参与评选的入围项目中,浙江嵊"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/16.txt",
"chars": 535,
"preview": "\r\n □本报记者 陆琼琼\r\n 记者昨日从新浪获悉,汪延已经正式辞去CEO一职,曹国伟将接替汪延升任CEO,正式掌舵新浪。短时间内,从CFO到COO,到CEO,曹国伟的工作能力得到多方认可,出任新浪第四任掌门似乎并不出人意外。\r\n 著名"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/17.txt",
"chars": 518,
"preview": " 新华社电 美国宇航局官员近日说,宇航局已决定设立一项总奖金为250万美元的大奖赛,希望用这种方式选出未来登陆月球的飞行器设计方案。\r\n 美宇航局副局长戴尔5月5日在加利福尼亚州举行的一次航天会议上说,宇航局已选定“X大奖”基金会管理这"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/18.txt",
"chars": 145,
"preview": " 日前,据联想相关负责人表示,为了纪念新联想成立一周年,联想在美国市场将ThinkPad T,X以及Z系列笔记本进行一次降价促销活动。\r\n 据了解,此次降价最高达到了800美元,降幅也达到了42%。但联想方面表示,此次降价仅仅是针对该活"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000010/19.txt",
"chars": 1066,
"preview": " 科龙德勤案又有新进展:已有多位科龙H股股东到律师处咨询、登记,所涉股份达200余万股。而这些投资者正在为等待提起民事赔偿所需的前置条件焦急等待。\r\n 4月29日,上海新望闻达律师事务所律师宋一欣、秦桢凯在中国证券网上发表了《向境内外科"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/10.txt",
"chars": 2735,
"preview": " 专仿竞争共存\r\n 近日,美国医药保健管理协会(PCMA)的一份评估报告指出,专利药厂家就老年人经常使用的专利药出台了一系列措施,试图限制仿制药厂商产销该类产品,通过诉讼、游说立法和专利成分陷阱等手段,力求最大程度延缓仿制药上市或进入联"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/11.txt",
"chars": 2582,
"preview": " 万络给止痛药市场带来的阴霾久久仍未散去,但这丝毫不能说明该市场的需求在减少。在既定的需求现实下,COX-2抑制剂的衰落,必然引来趁虚而入者。不久前我国河南帅克制药和贵州益佰先后宣称将倚靠新的止痛药进入该领域,一场“分羹”之战显然已经急促"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/12.txt",
"chars": 572,
"preview": " 三九医药(000999)和三九生化(000403)今日同时发布公告,三九医药转让三九生化38.11%股权事宜获得国资委批准,三九医药将所持有的三九生化6162.1064万股和1906.0936万股国有法人股分别转让给振兴集团有限公司和山"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/13.txt",
"chars": 346,
"preview": " 国家食品药品监督管理局南方医药经济研究所主办的首届“中国制药工业百强年会暨第三终端高峰论坛”将于5月15日-17日在成都举行。会议由《医药经济报》、广州标点医药信息有限公司承办。\r\n 据主办方透露,年会将发布2005年医药产业的各项运"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/14.txt",
"chars": 567,
"preview": " 一场史无前例的非典让股骨头坏死走进了人们的视线。据推测,我国每年的股骨头坏死新发病例在15万~20万之间,累积需治疗的病例在500万~750万之间。\r\n 治疗股骨头坏死最理想的方法是保存患者自身股骨头,而达到此目的应早期诊断,早期治疗"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/15.txt",
"chars": 292,
"preview": " 全国治理医药购销领域商业贿赂专项工作正在轰轰烈烈地展开,却有骗子趁机诈骗医务人员。日前,广东省卫生厅向全省医务人员发出了“谨防有人利用打击商业贿赂诈骗”的提示。\r\n 治理医药购销领域商业贿赂专项工作于3月底在全国拉开帷幕之后,各地卫生"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/16.txt",
"chars": 1335,
"preview": " 深圳一家医院近日与当地银行合作,推出大额医疗“免息分期付款”的服务项目。患者只要在银行办理一张信用卡,在医院就部分项目治疗时可享受分期付款的优待,利息则由院方支付。\r\n 目前享有“免息分期付款”的对象被限定在有稳定经济来源的市民,而且"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/17.txt",
"chars": 770,
"preview": " 牙防组事件再起风波,此次争议的核心是,口腔用品认证办法的管理对象应该是“保健”品还是“护理”品。\r\n 本报独家获悉,4月24日,中国口腔清洁护理用品工业协会(原牙膏工业协会,下称“牙膏协会”)以书面形式向国家认证认可监督管理委员会(下"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/18.txt",
"chars": 3220,
"preview": " 中国人为啥没有西方人高? \r\n 饮食人类学家发现,旧石器时代的先祖们茹毛饮血,食肉和生食,身材比我们高大30%左右。今天的西方人,仍然喜欢吃带血丝的肉和生菜色拉,身材也仍旧比吃米面和爱烹调的亚洲人“大一号”。特别是阿尔卑斯山以"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000013/19.txt",
"chars": 1009,
"preview": " 9日在京举行的世界卫生组织慢性病全球报告中文版首发式上,卫生部公布了中国慢性病情况。其中一个令人瞠目的数字是,目前全国约有3.5亿吸烟者,2000年由吸烟导致的死亡人数近100万人,超过艾滋病、结核、交通事故以及自杀死亡人数的总和,占全"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/10.txt",
"chars": 918,
"preview": " 足彩06032期王智意甲解盘 \r\n 1.卡利亚里VS国际米兰:杯赛对国米的吸引力更大,目前平赔较低,本场在“0”的基础上需适当补“1”。\r\n 2.切沃VS佛罗伦萨:主队近来状态出现下滑,客队为冠军杯名额则到了不容有失的阶段,"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/11.txt",
"chars": 1194,
"preview": " 这是一次跨越世纪的重逢,这是一次弥补历史的棋坛盛事。5月23日至27日,在美丽的沈阳世博园,来自中国、日本和韩国三国的九位当年叱咤世界棋坛的围棋元老,将上演一次对决。昨天,本次元老赛的参赛者之一、中国围棋协会主席陈祖德表示,他对即将在沈"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/12.txt",
"chars": 2680,
"preview": "\r\n 皇帝“金口”吓走奇才\r\n 詹姆斯绝对全能,能突破、能投篮、能运球、能传球,还能……用嘴赢得比赛。在骑士队114比113战胜奇才队以总比分4比2晋级东区半决赛的比赛中,詹姆斯就施展了一回他的嘴上功夫,仅只言片语就说得阿里纳斯罚输了比"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/13.txt",
"chars": 1287,
"preview": "\r\n 有江湖的地方,就有恩怨。一个远离辽足视线很久的人物———马林,突然和三轮不胜的辽足扯上了关系。“下岗的马林接替战绩不佳的唐尧东?”一件原本也许是捕风捉影的事,引来当事人完全不同的反应:马林一笑置之,唐尧东则咆哮如雷。而辽宁队队长肇俊"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/14.txt",
"chars": 1137,
"preview": " 北京、莫斯科、美国 三次看升旗感受不同 大郅:北京这次最难忘 《体育天地·mvp》记者朱冲报道 “起来,不愿做奴隶的人们……”5月8日凌晨5点,王治郅随中国男篮一起在天安门广场参加了升旗仪式。当国歌响起的时候,王治郅两眼紧盯五星红"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/15.txt",
"chars": 1361,
"preview": "\r\n\r\n 本期足彩做为意德联赛的收官之战,仍保留了三大悬念,即意甲的冠军归属、欧冠资格之争及德甲的最后一场保级大战。相信很多理性彩民也会在选择上不敢轻易来把这三场比赛做稳胆来选择。下面,本人就本期足彩做以剖析,仅供大家参考。\r\n 随着五"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/16.txt",
"chars": 597,
"preview": "\r\n 刚刚在上周六以0比2惨败在长春队脚下的沈足,今天下午将在客场挑战升班马厦门蓝狮,尽管在此前,沈足曾在换帅之后创造了三连胜和四轮不败的骄人战绩,但随着上一轮主场失利,使得沈足刚刚赢来的保级优势顿时化为乌有,对此,沈足俱乐部总经理何兵表"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/17.txt",
"chars": 779,
"preview": "\r\n 中新网5月10日电今日出版的辽沈晚报刊载了中国球员李铁从英国利物浦发回来的文章,详细阐述了他和老东家埃弗顿队解约的内幕。文章全文如下:\r\n 今天我必须要在这里纠正一个概念上的错误。国内媒体昨天都用了“埃弗顿与李铁解约”这样的标题来"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/18.txt",
"chars": 527,
"preview": "\r\n\r\n\r\n 第4场位:从第06020期胜负彩起,在第4场位上,最近11期足彩出现的数字序列为“31111331331”,已经连续11轮不出“0”,而此前“0”还是比较受欢迎的,这就意味着在连续11轮不出“0”后,本轮第4场位出“0”的几"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000014/19.txt",
"chars": 2821,
"preview": "\r\n\r\n\r\n 场次 对阵 \r\n 时间 "
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/10.txt",
"chars": 1576,
"preview": " \r\n\r\n 中国游客在马来西亚 \r\n 中国“旅游休闲”商机,正从东南亚向东北亚“扇形展开” \r\n 新华网北京5月6日电(记者钱春弦)5月"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/11.txt",
"chars": 186,
"preview": " 【据新华社北京5月6日电】2006年“五一”黄金周,以新马泰为主的东南亚地区继续成为中国公民出境旅游休闲的主要目的地,与此同时韩国、日本观光界大力推动“东北亚旅游圈”以吸引中国游客;俄罗斯、蒙古国也加入争抢中国游客的行列。中国国家旅游"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/12.txt",
"chars": 3303,
"preview": " 2006年3月底至4月初,在中国最大的出境旅游展——上海世界旅游资源博览会上,日本有关机构在进行宣传。伴随着“五一”黄金周的到来,许多中国游客走出国门,开始了他们的海外之旅。中国的黄金周不仅使国内旅游市场出现高潮,也为国外旅游业创造了商"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/13.txt",
"chars": 1817,
"preview": " 世界的旅游业越来越熟悉一个新名词——中国的黄金周。每到这个时候,中国都会迎来一次旅游高潮,一直席卷周边甚至更为遥远的一些国家和地区,使他们也跟随着这种固定的周期迎来一个个旅游、消费旺季。\r\n 尽管出入境管理部门尚未公布具体数字,全国"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/14.txt",
"chars": 544,
"preview": " 时报讯 昨天是五一黄金周的最后一天,游客们纷纷踏上了回家的旅程,宁波各大景区全面“退烧”。而此时,宁波的各大餐饮商场负责人却喜笑颜开。\r\n 宁波市假日办统计数据显示,7天时间内,宁波市共接待游客216.3万人次,创历年五一黄金周新高。"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/15.txt",
"chars": 1299,
"preview": " 新华报业网讯 “五一”黄金周昨天结束。从南京[图库]市旅游局和统计局的统计数据来看,今年“五一”黄金周旅游的主要指标再次创下新高。七天里,南京共接待旅游者274万人次,较上年同期增长22.3%;实现旅游收入18.95亿元,较上年同比增"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/16.txt",
"chars": 1904,
"preview": "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n黄金周里,哈尔滨[图库]市中央大街俄罗斯文化节盛装开幕。文化节历时5个月,期间将举办中俄艺术作品展、俄罗斯绘画作品展、俄罗斯民乐巡展等6大主题活动。 王世义本报记者杜怀宇 摄 \r\n\r\n\r\n\r\n\r\n\r\n"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/17.txt",
"chars": 497,
"preview": " 本报讯(见习记者 张昱)5月8日,记者从银川市旅游局获悉,该市列入2006年五一黄金周数据统计范围的21家旅游景区,共接待游客17.6万人次,门票收入454.18万元,分别比上年同期增长14%和24%。\r\n 记者了解到,银川市今年五一"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/18.txt",
"chars": 1252,
"preview": " 【今日商报报道】 (通讯员 吕中 记者 赵文)据统计,“五一”黄金周期间,全省共接待游客992.49万人次,比2005年同期增长19.4%;实现旅游总收入70.93亿元,同比增长24.1%。\r\n 与以往“五一”黄金周相比,我省旅游市场"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000016/19.txt",
"chars": 491,
"preview": " 中广网5月9日广州图库消息(记者何伟奇 通讯员仇文确)据广东肇庆图库旅游部门统计,“五一”黄金周到肇庆各地主要旅游景区的游客人数达106万人次,与去年同期相比增长16%,其中城市接待旅游者人数为55.95万人次,同比增长10.2%,旅游"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/10.txt",
"chars": 1564,
"preview": "\r\n 【来源:你来我网】 【作者:蝴蝶飞飞】\r\n 如果有一天,我们不在关心什么是关键问题,而是把关键性思考融入我们的思维习惯中,那么这良好的思维习惯,就会成为我们战胜一切问题的利器,为我们提供应对一切问题的真正关键的路径。\r\n 为了爱"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/11.txt",
"chars": 2399,
"preview": "\r\n 【来源:你来我网】 【作者:kiidy】\r\n “花落繁枝千万片,犹自多情,学雪随风转”,2006年的春天,这种莺飞草长、树绿花香的常景,在我眼中变得特别的美丽。一年的时间,在许多人的生活中都不会有什么特别、不会产生多大变化,但在同"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/12.txt",
"chars": 1209,
"preview": " 话题多、题材广、时间紧、要求高的议论文写作一直是雅思写作中的难点,思维狭窄、词汇不足也一直是中国考生的通病,如何在议论文写作中拓宽思路?怎样背诵8000个雅思词汇?备考雅思写作的误区和应对方法又是什么?上周末,启德教育吴建业老师在广州图"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/13.txt",
"chars": 2077,
"preview": "\r\n 一番周折后终于在多伦多考完了新托福考试,整个考试持续了近8个小时。为什么呢, \r\n因为考完了第二部分听力后,美国ETS考试中心的Server出了故障,让所有当天的考 生苦苦等了3个小时,而且中间不许离开。笔者所在的考场有耐心坚持到最"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/14.txt",
"chars": 726,
"preview": " 50余名沈阳市职业学校校长近日走进清华园,在沈阳市教育局与清华大学共同举办的首期沈阳市职业学校校长高级研修班上为自己,更为沈阳的职业教育而“充电”。\r\n 沈阳市中等职业学校重组于上世纪80年代,绝大部分学校是由薄弱学校改造而成。近年来"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/15.txt",
"chars": 1068,
"preview": " 每小时付费过百元 孩子压力大不领情\r\n 请家教不为辅导功课,而是帮孩子填报志愿。昨天(9日),北京高考填报志愿网站刚一开通,不少家长就开始雇用大学生当起了“志愿家教”。北师大家教中心的负责人说,目前已有数十位家长来登记。而在其他一些家"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/16.txt",
"chars": 2209,
"preview": " 【来源: 太奇MBA】\r\n 英语各项复习及对策\r\n 英语试卷满分为100分,考试时间为180分钟,试题分为五部分:词汇知识,综合填空,阅读理解,英译汉和写作。\r\n 词汇和语法是语言能力的基础,没有丰富的词汇和对语法知识的掌握,一个"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/17.txt",
"chars": 2691,
"preview": "\r\n 【来源: 太奇MBA】\r\n 数学各门课的特点及复习对策\r\n 从考生总结一句话:得数学者得天下。在复习的过程中,要针对不同的课程复习特点进行复习。初数部分知识点少(主要就是绝对值,不等式和方程,数列,),概念简单(大部分都是在高中"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/18.txt",
"chars": 4166,
"preview": " 关于辅导班 【来源: 太奇MBA】\r\n 一、关于辅导班\r\n 为什么参加辅导班?\r\n 作为考研热潮的衍生物,考前辅导班一直备受关注,态度也是褒贬不一。但是和普研相比,MBA考前辅导班却显得格外重要。这是因为:\r\n 参加M"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000020/19.txt",
"chars": 1585,
"preview": " 1.考生填报志愿采取网上填报方式,考生须在规定时间内登录北京教育考试院网站填报志愿,网址为www.jeea.cn/ 或gk.bbn.com.cn/ 。同时提供电话填报方式,考生可通过拨打声讯电话1606790填报志愿或查询志愿。\r\n "
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/10.txt",
"chars": 257,
"preview": " 新华网深圳3月3日电(记者贾文军)全国拳击锦标赛3日在深圳市龙岗体育中心拉开战幕,在接下来的一周里,来自全国各地的200多名拳击健儿将在这里展开角逐。\r\n\r\n 本次锦标赛由国家体育总局拳击跆拳道运动管理中心主办。比赛设置了51公斤、5"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/11.txt",
"chars": 182,
"preview": " 《看今天》两会特别报道已经开始启动,两会和我们每个人的生活息息相关,让我们一同关注两会。您最想跟两会的代表委员说些什么?您有什么问题和建议想告诉他们?您可以拨打《看今天》的热线电话:010-51005100,也可以在搜狐网的两会专题上留"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/12.txt",
"chars": 1088,
"preview": " 2006年2月25日北京,香港利苑饮食集团在京开办的第一家食府—北京利苑酒家,在位于王府井金宝街的金宝大厦内隆重开业,此次开业标志着香港利苑饮食集团首次将目光聚焦北京。\r\n 利苑酒家是近年来进驻北京历史最悠久的粤菜食府之一。自1973"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/13.txt",
"chars": 1746,
"preview": " 留守人士自我安慰:在北京过春节的十理由\r\n www.XINHUANET.com2006年02月01日 20:00:35来源:新华网\r\n 【字号:大 中 小】 【背景色 】 【留言】 【评论】\r\n 过年留守北京这个决定英明 在北京过"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/14.txt",
"chars": 622,
"preview": " 大学生小袁网上投简历求职,一家自称设在广东的跨国公司分公司很快就打来电话进行“面试”。然而小袁查询该公司在上海的总部得知,他们没有在广东设立分公司,也没有在广东进行招聘。警方提醒,这很可能是个骗局。\r\n 小袁是在一知名人才网站上发出电"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/15.txt",
"chars": 687,
"preview": " 讲述:我网上求职险遭名企骗局\r\n http://www.sina.com.cn 2006年01月28日10:31\r\n 大学生小袁网上投简历求职,一家自称设在广东的跨国公司分公司很快就打来电话进行“面试”。然而小袁查询该公司在上海的总"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/16.txt",
"chars": 1762,
"preview": " 大学生求职供求不匹配凸显\r\n 2006年,大学毕业生求职面临的最大障碍是供求不匹配。前程无忧最新发布的调查显示:月薪1000元已成为毕业生的求职底线;七成以上企业认为2005届毕业生在工作中表现平平,缺乏责任感、不愿吃苦和环境适应能力"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/17.txt",
"chars": 622,
"preview": " 大学生小袁网上投简历求职,一家自称设在广东的跨国公司分公司很快就打来电话进行“面试”。然而小袁查询该公司在上海的总部得知,他们没有在广东设立分公司,也没有在广东进行招聘。警方提醒,这很可能是个骗局。\r\n 小袁是在一知名人才网站上发出电"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/18.txt",
"chars": 622,
"preview": " 大学生小袁网上投简历求职,一家自称设在广东的跨国公司分公司很快就打来电话进行“面试”。然而小袁查询该公司在上海的总部得知,他们没有在广东设立分公司,也没有在广东进行招聘。警方提醒,这很可能是个骗局。\r\n 小袁是在一知名人才网站上发出电"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000022/19.txt",
"chars": 432,
"preview": " 20位网友领到免费回家机票\r\n 自从Qunar与搜狐、天益游网站合办“夺宝奇兵”的活动以来,已经有好多人中得免费机票,其中有二十位已经定好回家的机票,时间就在临近春节之前。为了让大家能够轻松愉快的领到机票,Qunar和天益游决定把领票"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000023/10.txt",
"chars": 1089,
"preview": " 从今天的影响来看,2004年创立的\"数字炼金馆\"无疑是\"数独\"兴起历程中一个标志性事件,尽管它当初不过是数独天才们互相诘难的产物。 随着不断有更多的数独爱好者向他们提问,\"数字炼金馆\"认为有必要精炼\"数独\"题的篇目,以原创"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000023/11.txt",
"chars": 1127,
"preview": " 由文物出版社出版的《中国大史记·传世邮币珍藏》26日在故宫太庙举行了首发式。据出版方介绍,这套图书创造了中国出版界的六个第一,一问世便吸引了足够的眼球。 据介绍,《中国大史记·传世邮币珍藏》共收藏了100枚中国古代钱币珍品"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000023/14.txt",
"chars": 814,
"preview": "\r\n\r\n\r\n\r\n《大长今》调查\r\n\r\n1、你看《大长今》吗?\r\n\r\n不看\r\n\r\n赶上就看\r\n\r\n正在追着看\r\n\r\n看过n遍 \r\n\r\n2、《大长今》吸引你的是\r\n\r\n情节曲折,悬念迭起\r\n\r\n俊男靓女美食\r\n\r\n爱情亲情友情感人,台词经典\r"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000023/15.txt",
"chars": 919,
"preview": "\r\n【哀乐中年】 1949年文华影业公司出品\r\n哀乐中年\r\n 原著:张爱玲编剧:桑弧导演:桑弧片长:100分钟色彩:黑白主演:石 挥 饰 陈绍常 "
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000023/16.txt",
"chars": 819,
"preview": "\r\n【倾城之恋】 1984年香港邵氏公司出品\r\n倾城之恋\r\n 到处都是传奇,可不见得有这么圆满的收场。胡琴咿咿呀呀拉着,在万盏灯火的"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000023/17.txt",
"chars": 1623,
"preview": "\r\n【红玫瑰与白玫瑰】 1994年第一机构有限公司出品\r\n红玫瑰白玫瑰\r\n 也许每一个男子全都有过这样的两个女人,至少两个.娶了红玫瑰,久而久之,红的变了墙上的一抹蚊子血,白的还是"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000023/18.txt",
"chars": 1228,
"preview": "\r\n【半生缘】 1997年香港东方影业公司出品\r\n半生缘\r\n 他一旦想起曼桢,就觉得他从来也没有停止想念她过。就是自己以为已经忘记她的时候,她也还是在那里的,在他一切思想的背后。 &"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000023/19.txt",
"chars": 557,
"preview": "\r\n《金锁记》\r\n金锁记\r\n 根据张爱玲同名小说改编,“张爱玲名著中的名著”,继《大宅门》《橘子红了》之后又一部唯美、豪华的家族大戏。清末民初,小镇上天真烂漫的少女曹七巧(刘欣饰)和京城大户姜家的三少爷季泽(邵峰饰)一见钟情,可七巧的哥"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/10.txt",
"chars": 521,
"preview": "\r\n 本报北京5月9日电 \r\n董宾、高立英报道:北空某导弹团今天传出喜讯,营参谋长谭正提出的兵器改进方案,使困扰该团和兵器设计厂家三载的兵器重大隐患迎刃而解,赢得了官兵和有关专家的赞扬。\r\n 几年前,该团列装新型防空导弹,在检验性实弹打"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/11.txt",
"chars": 2305,
"preview": "\r\n 张连军 熊言春 本报特约通讯员 韩光 张旭航\r\n 【主人公小传】耿大勇,沈阳军区某装甲团四连连长。任连长以来,他带领连队多次完成新装备试训任务,先后荣立一等功一次,二等功一次,三等功两次。去年,他被沈阳军区树为“优秀指挥员”。\r\n"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/12.txt",
"chars": 1439,
"preview": "\r\n 周维华 田宁 本报特约通讯员 侯国荣\r\n 4月16日凌晨,一阵急促的报警铃声骤然响起。刚刚在上级组织的军事训练考核中夺得桂冠、被誉为“陆地铁拳”的兰州军区某装甲团,组织千人百车挺进腾格里沙漠腹地,拉开了综合演练的帷幕。\r\n 紧急"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/13.txt",
"chars": 1696,
"preview": "\r\n 本报特约通讯员 刘一代 本报特约记者 王永孝\r\n 阳春时节,记者来到第二炮兵指挥学院作战实验室,浓浓的信息化气息扑面而来。作战实验室主任甄明安告诉记者:“我们的目标是‘出了实验室,就能上战场’,如今已有近2000名学员在这里接受过"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/14.txt",
"chars": 5628,
"preview": " 台湾布导弹 威胁闽江口\r\n\r\n\r\n\r\n文章认为,台军在距离大陆沿海16——60公里的岛屿部署了大批导弹,这不但是一种对大陆的挑衅,从军事角度讲,这也是一种自寻死路的表现。据此前的分析认为,大陆远程火炮技术世界领先,解放军几乎拥有"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/15.txt",
"chars": 446,
"preview": "\r\n 中新网5月9日电 \r\n据共同社报道,围绕导弹防御系统(MD)问题,日本海上自卫队9日宣布,将派海上自卫队“宙斯盾”舰参加美国即将于6月在夏威夷近海实施的海基型拦截导弹(SM3)的拦截试验,对目标进行雷达跟踪。\r\n “宙斯盾”护卫舰"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/16.txt",
"chars": 626,
"preview": " “猎鹰”展翅——中国L15新型高级教练机研制成功\r\n \"猎鹰\"的首飞成功,对于完善中国初、中、高级教练机的研制生产体系,满足第三代和新型飞机飞行员的训练需要,竞争国际教练机市场都具有重要的意义。\r\n 伊朗全面备战防突袭\r\n 伊朗加"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/17.txt",
"chars": 1588,
"preview": "\r\n\r\n\r\n\r\n “猎鹰”试翼——我国第三代高级教练机开始试飞\r\n Chinese Third Generation Training Plane \r\nBegins Flight Test\r\n L-15总设计师对若干问题的解答\r\n "
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/18.txt",
"chars": 4560,
"preview": " 新华网北京5月9日电题:强军兴军的科学方略——科学发展观引领人民军队阔步前进\r\n\r\n 记者贾永、曹智\r\n\r\n 处在新的历史发展时期的人民军队,军事斗争准备和改革、建设、发展的任务十分繁重。如何推动国防和军队建设又快又好发展,有效履行"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/Database/SogouC/Sample/C000024/19.txt",
"chars": 325,
"preview": "\r\n 以禁止女兵穿低腰裤\r\n 已有120名女兵因违规被关禁闭\r\n 据新华社电 以军日前正在开展一场“全方位作战行动”。这次作战的目标可不是巴勒斯坦,而是女兵的低腰裤。\r\n 以军一位发言人7日说:“根据以色列国防军军纪,北方司令部决定"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/NaiveBayes-TextClassifier.ipynb",
"chars": 63481,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# 朴素贝叶斯算法原理与搜狗新闻分类实战\"\n ]\n },\n {"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/stopwords_cn.txt",
"chars": 1634,
"preview": "的\r\n一\r\n不\r\n在\r\n人\r\n有\r\n是\r\n为\r\n以\r\n于\r\n上\r\n他\r\n而\r\n后\r\n之\r\n来\r\n及\r\n了\r\n因\r\n下\r\n可\r\n到\r\n由\r\n这\r\n与\r\n也\r\n此\r\n但\r\n并\r\n个\r\n其\r\n已\r\n无\r\n小\r\n我\r\n们\r\n起\r\n最\r\n再\r\n今\r\n"
},
{
"path": "P001-Naive-Bayes-Text-Classifier/朴素贝叶斯新闻分类.html",
"chars": 278819,
"preview": "<!DOCTYPE html>\n<html>\n<head><meta charset=\"utf-8\" />\n<title>朴素贝叶斯新闻分类</title>\n\n<script src=\"https://cdnjs.cloudflare.co"
},
{
"path": "P002-Pytorch-Two-Layers-Neural-Net/two_layer_neural_net.ipynb",
"chars": 31008,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## pytorch实现两层神经网络\\n\",\n \"- 文档:ht"
},
{
"path": "P003-pytorch-Language-Model/_1_lm_lstm.ipynb",
"chars": 22089,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# 语言模型\\n\",\n \"------\\n\",\n \"## "
},
{
"path": "P003-pytorch-Language-Model/_2_lm_lstm_bll.ipynb",
"chars": 46089,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## Binary Log Loss实验\\n\",\n \"- 尝试一"
},
{
"path": "P003-pytorch-Language-Model/_3_lm_lstm_lc.ipynb",
"chars": 22443,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## 更大的context\\n\",\n \"- 使用额外的conte"
},
{
"path": "P004-Pytorch-Word2Vec/PytorchWord2Vec.ipynb",
"chars": 36301,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## 词向量\\n\",\n \"#### 学习目标\\n\",\n \""
},
{
"path": "P005-Pytorch-Text-Classifer/_0_情感分类_词向量平均.ipynb",
"chars": 18486,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## Sentiment Classfication By Word "
},
{
"path": "P005-Pytorch-Text-Classifer/_1_attention_wordavg.ipynb",
"chars": 116470,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## Attention Weighted word averagin"
},
{
"path": "P005-Pytorch-Text-Classifer/_2_self_attention_wordavg.ipynb",
"chars": 35227,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## self attention\"\n ]\n },\n {\n "
},
{
"path": "P006TheAnnotatedTransformer/model_transformer.ipynb",
"chars": 163329,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P006TheAnnotatedTransformer/test.ipynb",
"chars": 6211,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P007PytorchPointerGeneratorNetwork/make_finished_files.ipynb",
"chars": 8625,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/attention_decoder.py",
"chars": 12152,
"preview": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\n# Modifications Copyright 2017 Abigail See\n#\n# Licensed un"
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/batcher.py",
"chars": 18201,
"preview": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\n# Modifications Copyright 2017 Abigail See\n#\n# Licensed un"
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/beam_search.py",
"chars": 7756,
"preview": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\n# Modifications Copyright 2017 Abigail See\n#\n# Licensed un"
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/data.py",
"chars": 11266,
"preview": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\n# Modifications Copyright 2017 Abigail See\n#\n# Licensed un"
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/decode.py",
"chars": 11300,
"preview": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\n# Modifications Copyright 2017 Abigail See\n#\n# Licensed un"
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/inspect_checkpoint.py",
"chars": 1309,
"preview": "\"\"\"\nSimple script that checks if a checkpoint is corrupted with any inf/NaN values. Run like this:\n python inspect_chec"
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/model.py",
"chars": 24827,
"preview": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\n# Modifications Copyright 2017 Abigail See\n#\n# Licensed un"
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/run_summarization.py",
"chars": 18205,
"preview": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\n# Modifications Copyright 2017 Abigail See\n#\n# Licensed un"
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator/util.py",
"chars": 1810,
"preview": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\n# Modifications Copyright 2017 Abigail See\n#\n# Licensed un"
},
{
"path": "P007PytorchPointerGeneratorNetwork/pointer-generator-network-test.ipynb",
"chars": 2596,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## pointer generator network\"\n ]\n"
},
{
"path": "P007PytorchPointerGeneratorNetwork/rouge_test.ipynb",
"chars": 6643,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 4,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P007PytorchPointerGeneratorNetwork/test.ipynb",
"chars": 4170,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 18,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n"
},
{
"path": "P007PytorchPointerGeneratorNetwork/weibo_news_preprocession.ipynb",
"chars": 6915,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## 数据预处理\\n\",\n \"- 分词,划分训练集测试集,并保存"
},
{
"path": "P008GPT2TextSummary/Untitled.ipynb",
"chars": 699,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": []\n },\n {\n \"cell_type\": \"markdown\",\n "
},
{
"path": "P008GPT2TextSummary/gpt2_text_summary.ipynb",
"chars": 4588,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [\n {\n \"name\":"
},
{
"path": "P009StructureLearning/POS-RNN-hw.ipynb",
"chars": 13740,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# 用RNN做POS tagging\\n\",\n \"\\n\",\n "
},
{
"path": "P009StructureLearning/dev.txt",
"chars": 791724,
"preview": "He suspects sugar dust , which can be volatile , may have caused the explosion .\tPRP VBZ NN NN , WDT MD VB JJ , MD VB VB"
},
{
"path": "P009StructureLearning/pos-hmm-hw-solution.ipynb",
"chars": 44563,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": null,\n \"metadata\": {\n \"collapsed\": true\n },\n \"o"
},
{
"path": "P009StructureLearning/pos-hmm-hw.ipynb",
"chars": 37122,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "P009StructureLearning/train.txt",
"chars": 7944371,
"preview": "Thousands of demonstrators have marched through London to protest the war in Iraq and demand the withdrawal of British t"
},
{
"path": "P010Model/model_transformer.py",
"chars": 20460,
"preview": "#!/usr/bin/env python\n# coding: utf-8\n\n# In[1]:\n\n\nimport copy\nimport math\nimport time\nimport numpy as np\nimport matplotl"
},
{
"path": "P011WordSegmenting/chinese_word_segmenting.ipynb",
"chars": 3367,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P012translate/machine_translation.ipynb",
"chars": 1183778,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# 机器翻译\\n\",\n \"- 编码器--解码器\\n\",\n "
},
{
"path": "P012translate/torch_test.ipynb",
"chars": 5043,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n "
},
{
"path": "P013BertCode/bertTrainTest.ipynb",
"chars": 29969,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## bert源码测试\"\n ]\n },\n {\n \"cell"
},
{
"path": "P014Aho-Corasick-algorithm/AC.ipynb",
"chars": 6755,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [\n {\n \"name\":"
},
{
"path": "named_entity_recognition/.gitignore",
"chars": 31,
"preview": "__pycache__\nmodels/__pycache__\n"
},
{
"path": "named_entity_recognition/README.md",
"chars": 4548,
"preview": "# 中文命名实体识别\n\n\n\n## 数据集\n\n本项目尝试使用了多种不同的模型(包括HMM,CRF,Bi-LSTM,Bi-LSTM+CRF)来解决中文命名实体识别问题,数据集用的是论文ACL 2018[Chinese NER using Lat"
},
{
"path": "named_entity_recognition/ResumeNER/dev.char.bmes",
"chars": 95967,
"preview": "吴 B-NAME\n重 M-NAME\n阳 E-NAME\n, O\n中 B-CONT\n国 M-CONT\n国 M-CONT\n籍 E-CONT\n, O\n大 B-EDU\n学 M-EDU\n本 M-EDU\n科 E-EDU\n, O\n教 B-TITLE\n授 M"
},
{
"path": "named_entity_recognition/ResumeNER/test.char.bmes",
"chars": 107892,
"preview": "常 B-NAME\n建 M-NAME\n良 E-NAME\n, O\n男 O\n, O\n\n1 O\n9 O\n6 O\n3 O\n年 O\n出 O\n生 O\n, O\n工 B-PRO\n科 E-PRO\n学 B-EDU\n士 E-EDU\n, O\n高 B-TITLE\n级 "
},
{
"path": "named_entity_recognition/ResumeNER/train.char.bmes",
"chars": 874980,
"preview": "高 B-NAME\n勇 E-NAME\n: O\n男 O\n, O\n中 B-CONT\n国 M-CONT\n国 M-CONT\n籍 E-CONT\n, O\n无 O\n境 O\n外 O\n居 O\n留 O\n权 O\n, O\n\n1 O\n9 O\n6 O\n6 O\n年 O\n出"
},
{
"path": "named_entity_recognition/data.py",
"chars": 1101,
"preview": "from os.path import join\nfrom codecs import open\n\n\ndef build_corpus(split, make_vocab=True, data_dir=\"./ResumeNER\"):\n "
},
{
"path": "named_entity_recognition/evaluate.py",
"chars": 3105,
"preview": "import time\nfrom collections import Counter\n\nfrom models.hmm import HMM\nfrom models.crf import CRFModel\nfrom models.bils"
},
{
"path": "named_entity_recognition/evaluating.py",
"chars": 5760,
"preview": "from collections import Counter\n\nfrom utils import flatten_lists\n\n\nclass Metrics(object):\n \"\"\"用于评价模型,计算每个标签的精确率,召回率,F"
},
{
"path": "named_entity_recognition/main.py",
"chars": 2156,
"preview": "\nfrom data import build_corpus\nfrom utils import extend_maps, prepocess_data_for_lstmcrf\nfrom evaluate import hmm_train_"
},
{
"path": "named_entity_recognition/models/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "named_entity_recognition/models/bilstm.py",
"chars": 1311,
"preview": "import torch\nimport torch.nn as nn\nfrom torch.nn.utils.rnn import pad_packed_sequence, pack_padded_sequence\n\n\nclass BiLS"
},
{
"path": "named_entity_recognition/models/bilstm_crf.py",
"chars": 10238,
"preview": "from itertools import zip_longest\nfrom copy import deepcopy\n\nimport torch\nimport torch.nn as nn\nimport torch.optim as op"
},
{
"path": "named_entity_recognition/models/config.py",
"chars": 218,
"preview": "# 设置lstm训练参数\nclass TrainingConfig(object):\n batch_size = 64\n # 学习速率\n lr = 0.001\n epoches = 30\n print_step"
},
{
"path": "named_entity_recognition/models/crf.py",
"chars": 867,
"preview": "from sklearn_crfsuite import CRF\n\nfrom .util import sent2features\n\n\nclass CRFModel(object):\n def __init__(self,\n "
},
{
"path": "named_entity_recognition/models/hmm.py",
"chars": 5047,
"preview": "import torch\n\n\nclass HMM(object):\n def __init__(self, N, M):\n \"\"\"Args:\n N: 状态数,这里对应存在的标注的种类\n "
},
{
"path": "named_entity_recognition/models/util.py",
"chars": 4846,
"preview": "import torch\nimport torch.nn.functional as F\n\n# ******** CRF 工具函数*************\n\n\ndef word2features(sent, i):\n \"\"\"抽取单个"
},
{
"path": "named_entity_recognition/output.txt",
"chars": 31944,
"preview": "读取数据...\n加载并评估hmm模型...\n precision recall f1-score support\n E-EDU 0.9167 0.9821 0.9483 "
},
{
"path": "named_entity_recognition/requirement.txt",
"chars": 121,
"preview": "numpy==1.16.2\npython-crfsuite==0.9.6\nsix==1.12.0\nsklearn-crfsuite==0.3.6\ntabulate==0.8.3\ntorch==1.0.1.post2\ntqdm==4.31.1"
},
{
"path": "named_entity_recognition/test.py",
"chars": 2625,
"preview": "from utils import load_model, extend_maps, prepocess_data_for_lstmcrf\nfrom data import build_corpus\nfrom evaluating impo"
},
{
"path": "named_entity_recognition/utils.py",
"chars": 1484,
"preview": "import pickle\n\n\ndef merge_maps(dict1, dict2):\n \"\"\"用于合并两个word2id或者两个tag2id\"\"\"\n for key in dict2.keys():\n if "
},
{
"path": "word2vector/fasttext/README.md",
"chars": 297,
"preview": "# Fasttext\n\nFasttext的简单实现。\n\n如果使用本书附带的[docker镜像](https://hub.docker.com/r/chatopera/qna-book/),所有依赖已经安装好,不需要再次安装。使用docker"
},
{
"path": "word2vector/fasttext/fasttext.py",
"chars": 31175,
"preview": "# -*- encoding:utf8 -*-\nfrom __future__ import print_function\nfrom __future__ import division\nimport numpy as np\nimport "
},
{
"path": "word2vector/fasttext/run.sh",
"chars": 437,
"preview": "#! /bin/bash \n###########################################\n#\n###########################################\n\n# constants\nbas"
},
{
"path": "word2vector/fasttext/utils.py",
"chars": 6276,
"preview": "# -*- encoding:utf8 -*-\nfrom __future__ import print_function\nfrom __future__ import division\nimport numpy as np\nimport "
},
{
"path": "word2vector/fasttext/wget.py",
"chars": 13445,
"preview": "#!/usr/bin/env python\n\"\"\"\nDownload utility as an easy way to get file from the net\n \n python -m wget <URL>\n python wge"
},
{
"path": "word2vector/glove/README.md",
"chars": 291,
"preview": "# Glove\n\nGlove的简单实现。\n\n如果使用本书附带的[docker镜像](https://hub.docker.com/r/chatopera/qna-book/),所有依赖已经安装好,不需要再次安装。使用docker镜像运行程序"
},
{
"path": "word2vector/glove/glove.py",
"chars": 12411,
"preview": "# -*- encoding:utf8 -*-\nfrom __future__ import print_function\nfrom __future__ import division\nimport numpy as np\nimport "
},
{
"path": "word2vector/glove/run.sh",
"chars": 434,
"preview": "#! /bin/bash \n###########################################\n#\n###########################################\n\n# constants\nbas"
},
{
"path": "word2vector/glove/utils.py",
"chars": 6276,
"preview": "# -*- encoding:utf8 -*-\nfrom __future__ import print_function\nfrom __future__ import division\nimport numpy as np\nimport "
},
{
"path": "word2vector/glove/wget.py",
"chars": 13445,
"preview": "#!/usr/bin/env python\n\"\"\"\nDownload utility as an easy way to get file from the net\n \n python -m wget <URL>\n python wge"
},
{
"path": "word2vector/ngrams/README.md",
"chars": 378,
"preview": "# N元模型示例程序\n\n提示:得到源码后,先执行跟目录下的 admin/run.sh 进入docker容器服务。然后在容器内进行下述步骤。\n\n该演示项目基于开源项目[kenlm](https://github.com/kpu/kenlm)。"
},
{
"path": "word2vector/ngrams/gen_model.sh",
"chars": 317,
"preview": "#! /bin/bash \n###########################################\n#\n###########################################\n\n# constants\nbas"
},
{
"path": "word2vector/ngrams/lm.py",
"chars": 1670,
"preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n#========================================================================="
},
{
"path": "word2vector/requirements.txt",
"chars": 27,
"preview": "scipy==1.1.0\nnumpy==1.14.4\n"
},
{
"path": "word2vector/word2vec/README.md",
"chars": 298,
"preview": "# Word2vec\n\nword2vec的简单实现。\n\n如果使用本书附带的[docker镜像](https://hub.docker.com/r/chatopera/qna-book/),所有依赖已经安装好,不需要再次安装。使用docker"
},
{
"path": "word2vector/word2vec/debug.ipynb",
"chars": 6458,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# 测试\"\n ]\n },\n {\n \"cell_type\":"
},
{
"path": "word2vector/word2vec/run.sh",
"chars": 409,
"preview": "#! /bin/bash \n###########################################\n#\n###########################################\n\n# constants\nBAS"
},
{
"path": "word2vector/word2vec/utils.py",
"chars": 6274,
"preview": "# -*- encoding:utf8 -*-\nfrom __future__ import print_function\nfrom __future__ import division\nimport numpy as np\nimport "
},
{
"path": "word2vector/word2vec/wget.py",
"chars": 13445,
"preview": "#!/usr/bin/env python\n\"\"\"\nDownload utility as an easy way to get file from the net\n \n python -m wget <URL>\n python wge"
},
{
"path": "word2vector/word2vec/word2vec-python3.ipynb",
"chars": 38450,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"# word2vec python3 实现\"\n ]\n },\n "
},
{
"path": "word2vector/word2vec/word2vec.py",
"chars": 22953,
"preview": "# -*- encoding:utf8 -*-\nfrom __future__ import print_function\nfrom __future__ import division\nimport numpy as np\nimport "
}
]
// ... and 7 more files (download for full content)
About this extraction
This page contains the full source code of the zingp/NLP GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 188 files (41.6 MB), approximately 3.2M tokens, and a symbol index with 331 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.