Showing preview only (441K chars total). Download the full file or copy to clipboard to get everything.
Repository: RandolphVI/Hierarchical-Multi-Label-Text-Classification
Branch: master
Commit: e3195986ef56
Files: 16
Total size: 427.8 KB
Directory structure:
gitextract_iyvd7aib/
├── .github/
│ └── FUNDING.yml
├── .gitignore
├── .travis.yml
├── HARNN/
│ ├── test_harnn.py
│ ├── text_harnn.py
│ ├── train_harnn.py
│ └── visualization.py
├── LICENSE
├── README.md
├── Usage.md
├── data/
│ ├── Test_sample.json
│ ├── Train_sample.json
│ └── Validation_sample.json
└── utils/
├── checkmate.py
├── data_helpers.py
└── param_parser.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ["https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification/blob/master/.github/Wechat.jpeg", "https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification/blob/master/.github/Alipay.jpeg"]
================================================
FILE: .gitignore
================================================
### Compiled source ###
*.com
*.class
*.dll
*.exe
*.o
*.so
### Packages ###
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
### Logs and databases ###
*.log
*.sql
*.sqlite
### Mac OS generated files ###
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
### JetBrain config files ###
.idea
### Python ###
# Byte-compiled / optimized / DLL files
*.npy
__pycache__/
*.py[cod]
*$py.class
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# 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/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
# Translations
*.mo
*.pot
# Sphinx documentation
docs/_build/
# PyBuilder
target/
### IPythonNotebook ###
# Temporary data
.ipynb_checkpoints/
### Current Project ###
# Data File
*.txt
*.tsv
*.csv
*.json
*.jpg
*.png
*.html
*.pickle
*.kv
*.pdf
!/data
!/data/train_sample.json
!/data/validation_sample.json
!/data/test_sample.json
# Project File
/HMC-LMLP
/HMCN
/SVM
# Model File
*.model
*.pb
runs/
graph/
# Analysis File
Data Analysis.md
# Log File
logs/
# Related Code
temp.py
### Else ###
randolph/
Icon?
*.graffle
================================================
FILE: .travis.yml
================================================
language: python
matrix:
include:
- python: 3.6
install:
- pip install -r requirements.txt
- pip install coveralls
before_script:
- export PYTHONPATH=$PWD
script:
- true # add other tests here
- coveralls
================================================
FILE: HARNN/test_harnn.py
================================================
# -*- coding:utf-8 -*-
__author__ = 'Randolph'
import os
import sys
import time
import logging
import numpy as np
sys.path.append('../')
logging.getLogger('tensorflow').disabled = True
import tensorflow as tf
from utils import checkmate as cm
from utils import data_helpers as dh
from utils import param_parser as parser
from sklearn.metrics import precision_score, recall_score, f1_score, roc_auc_score, average_precision_score
args = parser.parameter_parser()
MODEL = dh.get_model_name()
logger = dh.logger_fn("tflog", "logs/Test-{0}.log".format(time.asctime()))
CPT_DIR = 'runs/' + MODEL + '/checkpoints/'
BEST_CPT_DIR = 'runs/' + MODEL + '/bestcheckpoints/'
SAVE_DIR = 'output/' + MODEL
def create_input_data(data: dict):
return zip(data['pad_seqs'], data['section'], data['subsection'], data['group'],
data['subgroup'], data['onehot_labels'], data['labels'])
def test_harnn():
"""Test HARNN model."""
# Print parameters used for the model
dh.tab_printer(args, logger)
# Load word2vec model
word2idx, embedding_matrix = dh.load_word2vec_matrix(args.word2vec_file)
# Load data
logger.info("Loading data...")
logger.info("Data processing...")
test_data = dh.load_data_and_labels(args, args.test_file, word2idx)
# Load harnn model
OPTION = dh._option(pattern=1)
if OPTION == 'B':
logger.info("Loading best model...")
checkpoint_file = cm.get_best_checkpoint(BEST_CPT_DIR, select_maximum_value=True)
else:
logger.info("Loading latest model...")
checkpoint_file = tf.train.latest_checkpoint(CPT_DIR)
logger.info(checkpoint_file)
graph = tf.Graph()
with graph.as_default():
session_conf = tf.ConfigProto(
allow_soft_placement=args.allow_soft_placement,
log_device_placement=args.log_device_placement)
session_conf.gpu_options.allow_growth = args.gpu_options_allow_growth
sess = tf.Session(config=session_conf)
with sess.as_default():
# Load the saved meta graph and restore variables
saver = tf.train.import_meta_graph("{0}.meta".format(checkpoint_file))
saver.restore(sess, checkpoint_file)
# Get the placeholders from the graph by name
input_x = graph.get_operation_by_name("input_x").outputs[0]
input_y_first = graph.get_operation_by_name("input_y_first").outputs[0]
input_y_second = graph.get_operation_by_name("input_y_second").outputs[0]
input_y_third = graph.get_operation_by_name("input_y_third").outputs[0]
input_y_fourth = graph.get_operation_by_name("input_y_fourth").outputs[0]
input_y = graph.get_operation_by_name("input_y").outputs[0]
dropout_keep_prob = graph.get_operation_by_name("dropout_keep_prob").outputs[0]
alpha = graph.get_operation_by_name("alpha").outputs[0]
is_training = graph.get_operation_by_name("is_training").outputs[0]
# Tensors we want to evaluate
first_scores = graph.get_operation_by_name("first-output/scores").outputs[0]
second_scores = graph.get_operation_by_name("second-output/scores").outputs[0]
third_scores = graph.get_operation_by_name("third-output/scores").outputs[0]
fourth_scores = graph.get_operation_by_name("fourth-output/scores").outputs[0]
scores = graph.get_operation_by_name("output/scores").outputs[0]
# Split the output nodes name by '|' if you have several output nodes
output_node_names = "first-output/scores|second-output/scores|third-output/scores|fourth-output/scores|output/scores"
# Save the .pb model file
output_graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def,
output_node_names.split("|"))
tf.train.write_graph(output_graph_def, "graph", "graph-harnn-{0}.pb".format(MODEL), as_text=False)
# Generate batches for one epoch
batches = dh.batch_iter(list(create_input_data(test_data)), args.batch_size, 1, shuffle=False)
# Collect the predictions here
true_labels = []
predicted_labels = []
predicted_scores = []
# Collect for calculating metrics
true_onehot_labels = [[], [], [], [], []]
predicted_onehot_scores = [[], [], [], [], []]
predicted_onehot_labels = [[], [], [], [], []]
for batch_test in batches:
x, sec, subsec, group, subgroup, y_onehot, y = zip(*batch_test)
y_batch_test_list = [y_onehot, sec, subsec, group, subgroup]
feed_dict = {
input_x: x,
input_y_first: sec,
input_y_second: subsec,
input_y_third: group,
input_y_fourth: subgroup,
input_y: y_onehot,
dropout_keep_prob: 1.0,
alpha: args.alpha,
is_training: False
}
batch_global_scores, batch_first_scores, batch_second_scores, batch_third_scores, batch_fourth_scores = \
sess.run([scores, first_scores, second_scores, third_scores, fourth_scores], feed_dict)
batch_scores = [batch_global_scores, batch_first_scores, batch_second_scores,
batch_third_scores, batch_fourth_scores]
# Get the predicted labels by threshold
batch_predicted_labels_ts, batch_predicted_scores_ts = \
dh.get_label_threshold(scores=batch_scores[0], threshold=args.threshold)
# Add results to collection
for labels in y:
true_labels.append(labels)
for labels in batch_predicted_labels_ts:
predicted_labels.append(labels)
for values in batch_predicted_scores_ts:
predicted_scores.append(values)
for index in range(len(predicted_onehot_scores)):
for onehot_labels in y_batch_test_list[index]:
true_onehot_labels[index].append(onehot_labels)
for onehot_scores in batch_scores[index]:
predicted_onehot_scores[index].append(onehot_scores)
# Get one-hot prediction by threshold
predicted_onehot_labels_ts = \
dh.get_onehot_label_threshold(scores=batch_scores[index], threshold=args.threshold)
for onehot_labels in predicted_onehot_labels_ts:
predicted_onehot_labels[index].append(onehot_labels)
# Calculate Precision & Recall & F1
for index in range(len(predicted_onehot_scores)):
test_pre = precision_score(y_true=np.array(true_onehot_labels[index]),
y_pred=np.array(predicted_onehot_labels[index]), average='micro')
test_rec = recall_score(y_true=np.array(true_onehot_labels[index]),
y_pred=np.array(predicted_onehot_labels[index]), average='micro')
test_F1 = f1_score(y_true=np.array(true_onehot_labels[index]),
y_pred=np.array(predicted_onehot_labels[index]), average='micro')
test_auc = roc_auc_score(y_true=np.array(true_onehot_labels[index]),
y_score=np.array(predicted_onehot_scores[index]), average='micro')
test_prc = average_precision_score(y_true=np.array(true_onehot_labels[index]),
y_score=np.array(predicted_onehot_scores[index]), average="micro")
if index == 0:
logger.info("[Global] Predict by threshold: Precision {0:g}, Recall {1:g}, "
"F1 {2:g}, AUC {3:g}, AUPRC {4:g}"
.format(test_pre, test_rec, test_F1, test_auc, test_prc))
else:
logger.info("[Local] Predict by threshold in Level-{0}: Precision {1:g}, Recall {2:g}, "
"F1 {3:g}, AUPRC {4:g}".format(index, test_pre, test_rec, test_F1, test_prc))
# Save the prediction result
if not os.path.exists(SAVE_DIR):
os.makedirs(SAVE_DIR)
dh.create_prediction_file(output_file=SAVE_DIR + "/predictions.json", data_id=test_data['id'],
true_labels=true_labels, predict_labels=predicted_labels,
predict_scores=predicted_scores)
logger.info("All Done.")
if __name__ == '__main__':
test_harnn()
================================================
FILE: HARNN/text_harnn.py
================================================
# -*- coding:utf-8 -*-
__author__ = 'Randolph'
import tensorflow as tf
class TextHARNN(object):
"""A HARNN for text classification."""
def __init__(
self, sequence_length, vocab_size, embedding_type, embedding_size, lstm_hidden_size, attention_unit_size,
fc_hidden_size, num_classes_list, total_classes, l2_reg_lambda=0.0, pretrained_embedding=None):
# Placeholders for input, output, dropout_prob and training_tag
self.input_x = tf.placeholder(tf.int32, [None, sequence_length], name="input_x")
self.input_y_first = tf.placeholder(tf.float32, [None, num_classes_list[0]], name="input_y_first")
self.input_y_second = tf.placeholder(tf.float32, [None, num_classes_list[1]], name="input_y_second")
self.input_y_third = tf.placeholder(tf.float32, [None, num_classes_list[2]], name="input_y_third")
self.input_y_fourth = tf.placeholder(tf.float32, [None, num_classes_list[3]], name="input_y_fourth")
self.input_y = tf.placeholder(tf.float32, [None, total_classes], name="input_y")
self.dropout_keep_prob = tf.placeholder(tf.float32, name="dropout_keep_prob")
self.alpha = tf.placeholder(tf.float32, name="alpha")
self.is_training = tf.placeholder(tf.bool, name="is_training")
self.global_step = tf.Variable(0, trainable=False, name="Global_Step")
def _attention(input_x, num_classes, name=""):
"""
Attention Layer.
Args:
input_x: [batch_size, sequence_length, lstm_hidden_size * 2]
num_classes: The number of i th level classes.
name: Scope name.
Returns:
attention_weight: [batch_size, num_classes, sequence_length]
attention_out: [batch_size, lstm_hidden_size * 2]
"""
num_units = input_x.get_shape().as_list()[-1]
with tf.name_scope(name + "attention"):
W_s1 = tf.Variable(tf.truncated_normal(shape=[attention_unit_size, num_units],
stddev=0.1, dtype=tf.float32), name="W_s1")
W_s2 = tf.Variable(tf.truncated_normal(shape=[num_classes, attention_unit_size],
stddev=0.1, dtype=tf.float32), name="W_s2")
# attention_matrix: [batch_size, num_classes, sequence_length]
attention_matrix = tf.map_fn(
fn=lambda x: tf.matmul(W_s2, x),
elems=tf.tanh(
tf.map_fn(
fn=lambda x: tf.matmul(W_s1, tf.transpose(x)),
elems=input_x,
dtype=tf.float32
)
)
)
attention_weight = tf.nn.softmax(attention_matrix, name="attention")
attention_out = tf.matmul(attention_weight, input_x)
attention_out = tf.reduce_mean(attention_out, axis=1)
return attention_weight, attention_out
def _fc_layer(input_x, name=""):
"""
Fully Connected Layer.
Args:
input_x: [batch_size, *]
name: Scope name.
Returns:
fc_out: [batch_size, fc_hidden_size]
"""
with tf.name_scope(name + "fc"):
num_units = input_x.get_shape().as_list()[-1]
W = tf.Variable(tf.truncated_normal(shape=[num_units, fc_hidden_size],
stddev=0.1, dtype=tf.float32), name="W")
b = tf.Variable(tf.constant(value=0.1, shape=[fc_hidden_size], dtype=tf.float32), name="b")
fc = tf.nn.xw_plus_b(input_x, W, b)
fc_out = tf.nn.relu(fc)
return fc_out
def _local_layer(input_x, input_att_weight, num_classes, name=""):
"""
Local Layer.
Args:
input_x: [batch_size, fc_hidden_size]
input_att_weight: [batch_size, num_classes, sequence_length]
num_classes: Number of classes.
name: Scope name.
Returns:
logits: [batch_size, num_classes]
scores: [batch_size, num_classes]
visual: [batch_size, sequence_length]
"""
with tf.name_scope(name + "output"):
num_units = input_x.get_shape().as_list()[-1]
W = tf.Variable(tf.truncated_normal(shape=[num_units, num_classes],
stddev=0.1, dtype=tf.float32), name="W")
b = tf.Variable(tf.constant(value=0.1, shape=[num_classes], dtype=tf.float32), name="b")
logits = tf.nn.xw_plus_b(input_x, W, b, name="logits")
scores = tf.sigmoid(logits, name="scores")
# shape of visual: [batch_size, sequence_length]
visual = tf.multiply(input_att_weight, tf.expand_dims(scores, -1))
visual = tf.nn.softmax(visual)
visual = tf.reduce_mean(visual, axis=1, name="visual")
return logits, scores, visual
def _linear(input_, output_size, initializer=None, scope="SimpleLinear"):
"""
Linear map: output[k] = sum_i(Matrix[k, i] * args[i] ) + Bias[k].
Args:
input_: a tensor or a list of 2D, batch x n, Tensors.
output_size: int, second dimension of W[i].
initializer: The initializer.
scope: VariableScope for the created subgraph; defaults to "SimpleLinear".
Returns:
A 2D Tensor with shape [batch x output_size] equal to
sum_i(args[i] * W[i]), where W[i]s are newly created matrices.
Raises:
ValueError: if some of the arguments has unspecified or wrong shape.
"""
shape = input_.get_shape().as_list()
if len(shape) != 2:
raise ValueError("Linear is expecting 2D arguments: {0}".format(str(shape)))
if not shape[1]:
raise ValueError("Linear expects shape[1] of arguments: {0}".format(str(shape)))
input_size = shape[1]
# Now the computation.
with tf.variable_scope(scope):
W = tf.get_variable("W", [input_size, output_size], dtype=input_.dtype)
b = tf.get_variable("b", [output_size], dtype=input_.dtype, initializer=initializer)
return tf.nn.xw_plus_b(input_, W, b)
def _highway_layer(input_, size, num_layers=1, bias=-2.0):
"""
Highway Network (cf. http://arxiv.org/abs/1505.00387).
t = sigmoid(Wx + b); h = relu(W'x + b')
z = t * h + (1 - t) * x
where t is transform gate, and (1 - t) is carry gate.
"""
for idx in range(num_layers):
h = tf.nn.relu(_linear(input_, size, scope=("highway_h_{0}".format(idx))))
t = tf.sigmoid(_linear(input_, size, initializer=tf.constant_initializer(bias),
scope=("highway_t_{0}".format(idx))))
output = t * h + (1. - t) * input_
input_ = output
return output
# Embedding Layer
with tf.device("/cpu:0"), tf.name_scope("embedding"):
# Use random generated the word vector by default
# Can also be obtained through our own word vectors trained by our corpus
if pretrained_embedding is None:
self.embedding = tf.Variable(tf.random_uniform([vocab_size, embedding_size], minval=-1.0, maxval=1.0,
dtype=tf.float32), trainable=True, name="embedding")
else:
if embedding_type == 0:
self.embedding = tf.constant(pretrained_embedding, dtype=tf.float32, name="embedding")
if embedding_type == 1:
self.embedding = tf.Variable(pretrained_embedding, trainable=True,
dtype=tf.float32, name="embedding")
self.embedded_sentence = tf.nn.embedding_lookup(self.embedding, self.input_x)
# Average Vectors
# [batch_size, embedding_size]
self.embedded_sentence_average = tf.reduce_mean(self.embedded_sentence, axis=1)
# Bi-LSTM Layer
with tf.name_scope("Bi-lstm"):
lstm_fw_cell = tf.nn.rnn_cell.LSTMCell(lstm_hidden_size) # forward direction cell
lstm_bw_cell = tf.nn.rnn_cell.LSTMCell(lstm_hidden_size) # backward direction cell
if self.dropout_keep_prob is not None:
lstm_fw_cell = tf.nn.rnn_cell.DropoutWrapper(lstm_fw_cell, output_keep_prob=self.dropout_keep_prob)
lstm_bw_cell = tf.nn.rnn_cell.DropoutWrapper(lstm_bw_cell, output_keep_prob=self.dropout_keep_prob)
# Creates a dynamic bidirectional recurrent neural network
# shape of `outputs`: tuple -> (outputs_fw, outputs_bw)
# shape of `outputs_fw`: [batch_size, sequence_length, lstm_hidden_size]
# shape of `state`: tuple -> (outputs_state_fw, output_state_bw)
# shape of `outputs_state_fw`: tuple -> (c, h) c: memory cell; h: hidden state
outputs, state = tf.nn.bidirectional_dynamic_rnn(lstm_fw_cell, lstm_bw_cell,
self.embedded_sentence, dtype=tf.float32)
# Concat output
self.lstm_out = tf.concat(outputs, axis=2) # [batch_size, sequence_length, lstm_hidden_size * 2]
self.lstm_out_pool = tf.reduce_mean(self.lstm_out, axis=1) # [batch_size, lstm_hidden_size * 2]
# First Level
self.first_att_weight, self.first_att_out = _attention(self.lstm_out, num_classes_list[0], name="first-")
self.first_local_input = tf.concat([self.lstm_out_pool, self.first_att_out], axis=1)
self.first_local_fc_out = _fc_layer(self.first_local_input, name="first-local-")
self.first_logits, self.first_scores, self.first_visual = _local_layer(
self.first_local_fc_out, self.first_att_weight, num_classes_list[0], name="first-")
# Second Level
self.second_att_input = tf.multiply(self.lstm_out, tf.expand_dims(self.first_visual, -1))
self.second_att_weight, self.second_att_out = _attention(
self.second_att_input, num_classes_list[1], name="second-")
self.second_local_input = tf.concat([self.lstm_out_pool, self.second_att_out], axis=1)
self.second_local_fc_out = _fc_layer(self.second_local_input, name="second-local-")
self.second_logits, self.second_scores, self.second_visual = _local_layer(
self.second_local_fc_out, self.second_att_weight, num_classes_list[1], name="second-")
# Third Level
self.third_att_input = tf.multiply(self.lstm_out, tf.expand_dims(self.second_visual, -1))
self.third_att_weight, self.third_att_out = _attention(
self.third_att_input, num_classes_list[2], name="third-")
self.third_local_input = tf.concat([self.lstm_out_pool, self.third_att_out], axis=1)
self.third_local_fc_out = _fc_layer(self.third_local_input, name="third-local-")
self.third_logits, self.third_scores, self.third_visual = _local_layer(
self.third_local_fc_out, self.third_att_weight, num_classes_list[2], name="third-")
# Fourth Level
self.fourth_att_input = tf.multiply(self.lstm_out, tf.expand_dims(self.third_visual, -1))
self.fourth_att_weight, self.fourth_att_out = _attention(
self.fourth_att_input, num_classes_list[3], name="fourth-")
self.fourth_local_input = tf.concat([self.lstm_out_pool, self.fourth_att_out], axis=1)
self.fourth_local_fc_out = _fc_layer(self.fourth_local_input, name="fourth-local-")
self.fourth_logits, self.fourth_scores, self.fourth_visual = _local_layer(
self.fourth_local_fc_out, self.fourth_att_weight, num_classes_list[3], name="fourth-")
# Concat
# shape of ham_out: [batch_size, fc_hidden_size * 4]
self.ham_out = tf.concat([self.first_local_fc_out, self.second_local_fc_out,
self.third_local_fc_out, self.fourth_local_fc_out], axis=1)
# Fully Connected Layer
self.fc_out = _fc_layer(self.ham_out)
# Highway Layer
with tf.name_scope("highway"):
self.highway = _highway_layer(self.fc_out, self.fc_out.get_shape()[1], num_layers=1, bias=0)
# Add dropout
with tf.name_scope("dropout"):
self.h_drop = tf.nn.dropout(self.highway, self.dropout_keep_prob)
# Global scores
with tf.name_scope("global-output"):
num_units = self.h_drop.get_shape().as_list()[-1]
W = tf.Variable(tf.truncated_normal(shape=[num_units, total_classes],
stddev=0.1, dtype=tf.float32), name="W")
b = tf.Variable(tf.constant(value=0.1, shape=[total_classes], dtype=tf.float32), name="b")
self.global_logits = tf.nn.xw_plus_b(self.h_drop, W, b, name="logits")
self.global_scores = tf.sigmoid(self.global_logits, name="scores")
with tf.name_scope("output"):
self.local_scores = tf.concat([self.first_scores, self.second_scores,
self.third_scores, self.fourth_scores], axis=1)
self.scores = tf.add(self.alpha * self.global_scores, (1 - self.alpha) * self.local_scores, name="scores")
# Calculate mean cross-entropy loss, L2 loss
with tf.name_scope("loss"):
def cal_loss(labels, logits, name):
losses = tf.nn.sigmoid_cross_entropy_with_logits(labels=labels, logits=logits)
losses = tf.reduce_mean(tf.reduce_sum(losses, axis=1), name=name + "losses")
return losses
# Local Loss
losses_1 = cal_loss(labels=self.input_y_first, logits=self.first_logits, name="first_")
losses_2 = cal_loss(labels=self.input_y_second, logits=self.second_logits, name="second_")
losses_3 = cal_loss(labels=self.input_y_third, logits=self.third_logits, name="third_")
losses_4 = cal_loss(labels=self.input_y_fourth, logits=self.fourth_logits, name="fourth_")
local_losses = tf.add_n([losses_1, losses_2, losses_3, losses_4], name="local_losses")
# Global Loss
global_losses = cal_loss(labels=self.input_y, logits=self.global_logits, name="global_")
# L2 Loss
l2_losses = tf.add_n([tf.nn.l2_loss(tf.cast(v, tf.float32)) for v in tf.trainable_variables()],
name="l2_losses") * l2_reg_lambda
self.loss = tf.add_n([local_losses, global_losses, l2_losses], name="loss")
================================================
FILE: HARNN/train_harnn.py
================================================
# -*- coding:utf-8 -*-
__author__ = 'Randolph'
import os
import sys
import time
import logging
sys.path.append('../')
logging.getLogger('tensorflow').disabled = True
import numpy as np
import tensorflow as tf
from text_harnn import TextHARNN
from utils import checkmate as cm
from utils import data_helpers as dh
from utils import param_parser as parser
from sklearn.metrics import precision_score, recall_score, f1_score, roc_auc_score, average_precision_score
args = parser.parameter_parser()
OPTION = dh._option(pattern=0)
logger = dh.logger_fn("tflog", "logs/{0}-{1}.log".format('Train' if OPTION == 'T' else 'Restore', time.asctime()))
def create_input_data(data: dict):
return zip(data['pad_seqs'], data['section'], data['subsection'],
data['group'], data['subgroup'], data['onehot_labels'])
def train_harnn():
"""Training HARNN model."""
# Print parameters used for the model
dh.tab_printer(args, logger)
# Load word2vec model
word2idx, embedding_matrix = dh.load_word2vec_matrix(args.word2vec_file)
# Load sentences, labels, and training parameters
logger.info("Loading data...")
logger.info("Data processing...")
train_data = dh.load_data_and_labels(args, args.train_file, word2idx)
val_data = dh.load_data_and_labels(args, args.validation_file, word2idx)
# Build a graph and harnn object
with tf.Graph().as_default():
session_conf = tf.ConfigProto(
allow_soft_placement=args.allow_soft_placement,
log_device_placement=args.log_device_placement)
session_conf.gpu_options.allow_growth = args.gpu_options_allow_growth
sess = tf.Session(config=session_conf)
with sess.as_default():
harnn = TextHARNN(
sequence_length=args.pad_seq_len,
vocab_size=len(word2idx),
embedding_type=args.embedding_type,
embedding_size=args.embedding_dim,
lstm_hidden_size=args.lstm_dim,
attention_unit_size=args.attention_dim,
fc_hidden_size=args.fc_dim,
num_classes_list=args.num_classes_list,
total_classes=args.total_classes,
l2_reg_lambda=args.l2_lambda,
pretrained_embedding=embedding_matrix)
# Define training procedure
with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
learning_rate = tf.train.exponential_decay(learning_rate=args.learning_rate,
global_step=harnn.global_step,
decay_steps=args.decay_steps,
decay_rate=args.decay_rate,
staircase=True)
optimizer = tf.train.AdamOptimizer(learning_rate)
grads, vars = zip(*optimizer.compute_gradients(harnn.loss))
grads, _ = tf.clip_by_global_norm(grads, clip_norm=args.norm_ratio)
train_op = optimizer.apply_gradients(zip(grads, vars), global_step=harnn.global_step, name="train_op")
# Keep track of gradient values and sparsity (optional)
grad_summaries = []
for g, v in zip(grads, vars):
if g is not None:
grad_hist_summary = tf.summary.histogram("{0}/grad/hist".format(v.name), g)
sparsity_summary = tf.summary.scalar("{0}/grad/sparsity".format(v.name), tf.nn.zero_fraction(g))
grad_summaries.append(grad_hist_summary)
grad_summaries.append(sparsity_summary)
grad_summaries_merged = tf.summary.merge(grad_summaries)
# Output directory for models and summaries
out_dir = dh.get_out_dir(OPTION, logger)
checkpoint_dir = os.path.abspath(os.path.join(out_dir, "checkpoints"))
best_checkpoint_dir = os.path.abspath(os.path.join(out_dir, "bestcheckpoints"))
# Summaries for loss
loss_summary = tf.summary.scalar("loss", harnn.loss)
# Train summaries
train_summary_op = tf.summary.merge([loss_summary, grad_summaries_merged])
train_summary_dir = os.path.join(out_dir, "summaries", "train")
train_summary_writer = tf.summary.FileWriter(train_summary_dir, sess.graph)
# Validation summaries
validation_summary_op = tf.summary.merge([loss_summary])
validation_summary_dir = os.path.join(out_dir, "summaries", "validation")
validation_summary_writer = tf.summary.FileWriter(validation_summary_dir, sess.graph)
saver = tf.train.Saver(tf.global_variables(), max_to_keep=args.num_checkpoints)
best_saver = cm.BestCheckpointSaver(save_dir=best_checkpoint_dir, num_to_keep=3, maximize=True)
if OPTION == 'R':
# Load harnn model
logger.info("Loading model...")
checkpoint_file = tf.train.latest_checkpoint(checkpoint_dir)
logger.info(checkpoint_file)
# Load the saved meta graph and restore variables
saver = tf.train.import_meta_graph("{0}.meta".format(checkpoint_file))
saver.restore(sess, checkpoint_file)
if OPTION == 'T':
if not os.path.exists(checkpoint_dir):
os.makedirs(checkpoint_dir)
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())
# Save the embedding visualization
saver.save(sess, os.path.join(out_dir, "embedding", "embedding.ckpt"))
current_step = sess.run(harnn.global_step)
def train_step(batch_data):
"""A single training step."""
x, sec, subsec, group, subgroup, y_onehot = zip(*batch_data)
feed_dict = {
harnn.input_x: x,
harnn.input_y_first: sec,
harnn.input_y_second: subsec,
harnn.input_y_third: group,
harnn.input_y_fourth: subgroup,
harnn.input_y: y_onehot,
harnn.dropout_keep_prob: args.dropout_rate,
harnn.alpha: args.alpha,
harnn.is_training: True
}
_, step, summaries, loss = sess.run(
[train_op, harnn.global_step, train_summary_op, harnn.loss], feed_dict)
logger.info("step {0}: loss {1:g}".format(step, loss))
train_summary_writer.add_summary(summaries, step)
def validation_step(val_loader, writer=None):
"""Evaluates model on a validation set."""
batches_validation = dh.batch_iter(list(create_input_data(val_loader)), args.batch_size, 1)
# Predict classes by threshold or topk ('ts': threshold; 'tk': topk)
eval_counter, eval_loss = 0, 0.0
eval_pre_tk = [0.0] * args.topK
eval_rec_tk = [0.0] * args.topK
eval_F1_tk = [0.0] * args.topK
true_onehot_labels = []
predicted_onehot_scores = []
predicted_onehot_labels_ts = []
predicted_onehot_labels_tk = [[] for _ in range(args.topK)]
for batch_validation in batches_validation:
x, sec, subsec, group, subgroup, y_onehot = zip(*batch_validation)
feed_dict = {
harnn.input_x: x,
harnn.input_y_first: sec,
harnn.input_y_second: subsec,
harnn.input_y_third: group,
harnn.input_y_fourth: subgroup,
harnn.input_y: y_onehot,
harnn.dropout_keep_prob: 1.0,
harnn.alpha: args.alpha,
harnn.is_training: False
}
step, summaries, scores, cur_loss = sess.run(
[harnn.global_step, validation_summary_op, harnn.scores, harnn.loss], feed_dict)
# Prepare for calculating metrics
for i in y_onehot:
true_onehot_labels.append(i)
for j in scores:
predicted_onehot_scores.append(j)
# Predict by threshold
batch_predicted_onehot_labels_ts = \
dh.get_onehot_label_threshold(scores=scores, threshold=args.threshold)
for k in batch_predicted_onehot_labels_ts:
predicted_onehot_labels_ts.append(k)
# Predict by topK
for top_num in range(args.topK):
batch_predicted_onehot_labels_tk = dh.get_onehot_label_topk(scores=scores, top_num=top_num+1)
for i in batch_predicted_onehot_labels_tk:
predicted_onehot_labels_tk[top_num].append(i)
eval_loss = eval_loss + cur_loss
eval_counter = eval_counter + 1
if writer:
writer.add_summary(summaries, step)
eval_loss = float(eval_loss / eval_counter)
# Calculate Precision & Recall & F1
eval_pre_ts = precision_score(y_true=np.array(true_onehot_labels),
y_pred=np.array(predicted_onehot_labels_ts), average='micro')
eval_rec_ts = recall_score(y_true=np.array(true_onehot_labels),
y_pred=np.array(predicted_onehot_labels_ts), average='micro')
eval_F1_ts = f1_score(y_true=np.array(true_onehot_labels),
y_pred=np.array(predicted_onehot_labels_ts), average='micro')
for top_num in range(args.topK):
eval_pre_tk[top_num] = precision_score(y_true=np.array(true_onehot_labels),
y_pred=np.array(predicted_onehot_labels_tk[top_num]),
average='micro')
eval_rec_tk[top_num] = recall_score(y_true=np.array(true_onehot_labels),
y_pred=np.array(predicted_onehot_labels_tk[top_num]),
average='micro')
eval_F1_tk[top_num] = f1_score(y_true=np.array(true_onehot_labels),
y_pred=np.array(predicted_onehot_labels_tk[top_num]),
average='micro')
# Calculate the average AUC
eval_auc = roc_auc_score(y_true=np.array(true_onehot_labels),
y_score=np.array(predicted_onehot_scores), average='micro')
# Calculate the average PR
eval_prc = average_precision_score(y_true=np.array(true_onehot_labels),
y_score=np.array(predicted_onehot_scores), average='micro')
return eval_loss, eval_auc, eval_prc, eval_pre_ts, eval_rec_ts, eval_F1_ts, \
eval_pre_tk, eval_rec_tk, eval_F1_tk
# Generate batches
batches_train = dh.batch_iter(list(create_input_data(train_data)), args.batch_size, args.epochs)
num_batches_per_epoch = int((len(train_data['pad_seqs']) - 1) / args.batch_size) + 1
# Training loop. For each batch...
for batch_train in batches_train:
train_step(batch_train)
current_step = tf.train.global_step(sess, harnn.global_step)
if current_step % args.evaluate_steps == 0:
logger.info("\nEvaluation:")
eval_loss, eval_auc, eval_prc, \
eval_pre_ts, eval_rec_ts, eval_F1_ts, eval_pre_tk, eval_rec_tk, eval_F1_tk = \
validation_step(val_data, writer=validation_summary_writer)
logger.info("All Validation set: Loss {0:g} | AUC {1:g} | AUPRC {2:g}"
.format(eval_loss, eval_auc, eval_prc))
# Predict by threshold
logger.info("Predict by threshold: Precision {0:g}, Recall {1:g}, F1 {2:g}"
.format(eval_pre_ts, eval_rec_ts, eval_F1_ts))
# Predict by topK
logger.info("Predict by topK:")
for top_num in range(args.topK):
logger.info("Top{0}: Precision {1:g}, Recall {2:g}, F1 {3:g}"
.format(top_num+1, eval_pre_tk[top_num], eval_rec_tk[top_num], eval_F1_tk[top_num]))
best_saver.handle(eval_prc, sess, current_step)
if current_step % args.checkpoint_steps == 0:
checkpoint_prefix = os.path.join(checkpoint_dir, "model")
path = saver.save(sess, checkpoint_prefix, global_step=current_step)
logger.info("Saved model checkpoint to {0}\n".format(path))
if current_step % num_batches_per_epoch == 0:
current_epoch = current_step // num_batches_per_epoch
logger.info("Epoch {0} has finished!".format(current_epoch))
logger.info("All Done.")
if __name__ == '__main__':
train_harnn()
================================================
FILE: HARNN/visualization.py
================================================
# -*- coding:utf-8 -*-
__author__ = 'Randolph'
import sys
import time
import logging
sys.path.append('../')
logging.getLogger('tensorflow').disabled = True
import tensorflow as tf
from utils import checkmate as cm
from utils import data_helpers as dh
from utils import param_parser as parser
args = parser.parameter_parser()
MODEL = dh.get_model_name()
logger = dh.logger_fn("tflog", "logs/Test-{0}.log".format(time.asctime()))
CPT_DIR = 'runs/' + MODEL + '/checkpoints/'
BEST_CPT_DIR = 'runs/' + MODEL + '/bestcheckpoints/'
SAVE_DIR = 'output/' + MODEL
def create_input_data(data: dict):
return zip(data['pad_seqs'], data['content'], data['section'], data['subsection'], data['group'],
data['subgroup'], data['onehot_labels'])
def normalization(visual_list, visual_len, epsilon=1e-12):
min_weight = min(visual_list[:visual_len])
max_weight = max(visual_list[:visual_len])
margin = max_weight - min_weight
result = []
for i in range(visual_len):
value = (visual_list[i] - min_weight) / (margin + epsilon)
result.append(value)
return result
def create_visual_file(input_x, visual_list: list, seq_len):
f = open('attention.html', 'w')
f.write('<html style="margin:0;padding:0;"><body style="margin:0;padding:0;">\n')
f.write('<div style="margin:25px;">\n')
for visual in visual_list:
f.write('<p style="margin:10px;">\n')
for i in range(seq_len):
alpha = "{:.2f}".format(visual[i])
word = input_x[0][i]
f.write('\t<span style="margin-left:3px;background-color:rgba(255,0,0,{0})">{1}</span>\n'
.format(alpha, word))
f.write('</p>\n')
f.write('</div>\n')
f.write('</body></html>')
f.close()
def visualize():
"""Visualize HARNN model."""
# Load word2vec model
word2idx, embedding_matrix = dh.load_word2vec_matrix(args.word2vec_file)
# Load data
logger.info("Loading data...")
logger.info("Data processing...")
test_data = dh.load_data_and_labels(args, args.test_file, word2idx)
# Load harnn model
OPTION = dh._option(pattern=1)
if OPTION == 'B':
logger.info("Loading best model...")
checkpoint_file = cm.get_best_checkpoint(BEST_CPT_DIR, select_maximum_value=True)
else:
logger.info("Loading latest model...")
checkpoint_file = tf.train.latest_checkpoint(CPT_DIR)
logger.info(checkpoint_file)
graph = tf.Graph()
with graph.as_default():
session_conf = tf.ConfigProto(
allow_soft_placement=args.allow_soft_placement,
log_device_placement=args.log_device_placement)
session_conf.gpu_options.allow_growth = args.gpu_options_allow_growth
sess = tf.Session(config=session_conf)
with sess.as_default():
# Load the saved meta graph and restore variables
saver = tf.train.import_meta_graph("{0}.meta".format(checkpoint_file))
saver.restore(sess, checkpoint_file)
# Get the placeholders from the graph by name
input_x = graph.get_operation_by_name("input_x").outputs[0]
input_y_first = graph.get_operation_by_name("input_y_first").outputs[0]
input_y_second = graph.get_operation_by_name("input_y_second").outputs[0]
input_y_third = graph.get_operation_by_name("input_y_third").outputs[0]
input_y_fourth = graph.get_operation_by_name("input_y_fourth").outputs[0]
input_y = graph.get_operation_by_name("input_y").outputs[0]
dropout_keep_prob = graph.get_operation_by_name("dropout_keep_prob").outputs[0]
alpha = graph.get_operation_by_name("alpha").outputs[0]
is_training = graph.get_operation_by_name("is_training").outputs[0]
# Tensors we want to evaluate
first_visual = graph.get_operation_by_name("first-output/visual").outputs[0]
second_visual = graph.get_operation_by_name("second-output/visual").outputs[0]
third_visual = graph.get_operation_by_name("third-output/visual").outputs[0]
fourth_visual = graph.get_operation_by_name("fourth-output/visual").outputs[0]
# Split the output nodes name by '|' if you have several output nodes
output_node_names = "first-output/visual|second-output/visual|third-output/visual|fourth-output/visual|output/scores"
# Save the .pb model file
output_graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def,
output_node_names.split("|"))
tf.train.write_graph(output_graph_def, "graph", "graph-harnn-{0}.pb".format(MODEL), as_text=False)
# Generate batches for one epoch
batches = dh.batch_iter(list(create_input_data(test_data)), args.batch_size, 1, shuffle=False)
for batch_test in batches:
x, x_content, sec, subsec, group, subgroup, y_onehot = zip(*batch_test)
feed_dict = {
input_x: x,
input_y_first: sec,
input_y_second: subsec,
input_y_third: group,
input_y_fourth: subgroup,
input_y: y_onehot,
dropout_keep_prob: 1.0,
alpha: args.alpha,
is_training: False
}
batch_first_visual, batch_second_visual, batch_third_visual, batch_fourth_visual = \
sess.run([first_visual, second_visual, third_visual, fourth_visual], feed_dict)
batch_visual = [batch_first_visual, batch_second_visual, batch_third_visual, batch_fourth_visual]
seq_len = len(x_content[0])
pad_len = len(batch_first_visual[0])
length = (pad_len if seq_len >= pad_len else seq_len)
visual_list = []
for visual in batch_visual:
visual_list.append(normalization(visual[0].tolist(), length))
create_visual_file(x_content, visual_list, seq_len)
logger.info("Done.")
if __name__ == '__main__':
visualize()
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
# Hierarchical Multi-Label Text Classification
[](https://www.python.org/downloads/) [](https://travis-ci.org/RandolphVI/Hierarchical-Multi-Label-Text-Classification)[](https://www.codacy.com/manual/chinawolfman/Hierarchical-Multi-Label-Text-Classification?utm_source=github.com&utm_medium=referral&utm_content=RandolphVI/Hierarchical-Multi-Label-Text-Classification&utm_campaign=Badge_Grade)[](https://www.apache.org/licenses/LICENSE-2.0)
This repository is my research project, which has been accepted by CIKM'19. The [paper](https://dl.acm.org/citation.cfm?id=3357384.3357885) is already published.
The main objective of the project is to solve the hierarchical multi-label text classification (**HMTC**) problem. Different from the multi-label text classification, HMTC assigns each instance (object) into multiple categories and these categories are stored in a hierarchy structure, is a fundamental but challenging task of numerous applications.
## Requirements
- Python 3.6
- Tensorflow 1.15.0
- Tensorboard 1.15.0
- Sklearn 0.19.1
- Numpy 1.16.2
- Gensim 3.8.3
- Tqdm 4.49.0
## Introduction
Many real-world applications organize data in a hierarchical structure, where classes are specialized into subclasses or grouped into superclasses. For example, an electronic document (e.g. web-pages, digital libraries, patents and e-mails) is associated with multiple categories and all these categories are stored hierarchically in a **tree** or **Direct Acyclic Graph (DAG)**.
It provides an elegant way to show the characteristics of data and a multi-dimensional perspective to tackle the classification problem via hierarchy structure.

The Figure shows an example of predefined labels in hierarchical multi-label classification of documents in patent texts.
- Documents are shown as colored rectangles, labels as rounded rectangles.
- Circles in the rounded rectangles indicate that the corresponding document has been assigned the label.
- Arrows indicate a hierarchical structure between labels.
## Project
The project structure is below:
```text
.
├── HARNN
│ ├── train.py
│ ├── layers.py
│ ├── ham.py
│ ├── test.py
│ └── visualization.py
├── utils
│ ├── checkmate.py
│ ├── param_parser.py
│ └── data_helpers.py
├── data
│ ├── word2vec_100.model.* [Need Download]
│ ├── Test_sample.json
│ ├── Train_sample.json
│ └── Validation_sample.json
├── LICENSE
├── README.md
└── requirements.txt
```
## Data
You can download the [Patent Dataset](https://drive.google.com/open?id=1So3unr5p_vlYq31gE0Ly07Z2XTvD5QlM) used in the paper. And the [Word2vec model file](https://drive.google.com/file/d/1tZ9WPXkoJmWwtcnOU8S_KGPMp8wnYohR/view?usp=sharing) (dim=100) is also uploaded. **Make sure they are under the `/data` folder.**
:warning: As for **Education Dataset**, they may be subject to copyright protection under Chinese law. Thus, detailed information is not provided.
### :octocat: Text Segment
1. You can use `nltk` package if you are going to deal with the English text data.
2. You can use `jieba` package if you are going to deal with the Chinese text data.
### :octocat: Data Format
See data format in `/data` folder which including the data sample files. For example:
```
{"id": "3930316",
"title": ["sighting", "firearm"],
"abstract": ["rear", "sight", "firearm", "ha", "peephole", "device", "formed", "hollow", "tube", "end", ...],
"section": [5], "subsection": [104], "group": [512], "subgroup": [6535],
"labels": [5, 113, 649, 7333]}
```
- `id`: just the id.
- `title` & `abstract`: it's the word segment (after cleaning stopwords).
- `section` / `subsection` / `group` / `subgroup`: it's the first / second / third / fourth level category index.
- `labels`: it's the total category which add the index offset. (I will explain that later)
### :octocat: How to construct the data?
Use the sample of the Patent Dataset as an example. I will explain how to construct the label index.
For patent dataset, the class number for each level is: [9, 128, 661, 8364].
**Step 1:** For the first level, Patent dataset has 9 classes. You should index these 9 classes first, like:
```
{"Chemistry": 0, "Physics": 1, "Electricity": 2, "XXX": 3, ..., "XXX": 8}
```
**Step 2**: Next, you index the next level (total **128** classes), like:
```
{"Inorganic Chemistry": 0, "Organic Chemistry": 1, "Nuclear Physics": 2, "XXX": 3, ..., "XXX": 127}
```
**Step 3**: Then, you index the third level (total **661** classes), like:
```
{"Steroids": 0, "Peptides": 1, "Heterocyclic Compounds": 2, ..., "XXX": 660}
```
**Step 4**: If you have the fourth level or deeper level, index them.
**Step 5**: Now suppose you have one record (**id: 3930316** mentioned before):
```
{"id": "3930316",
"title": ["sighting", "firearm"],
"abstract": ["rear", "sight", "firearm", "ha", "peephole", "device", "formed", "hollow", "tube", "end", ...],
"section": [5], "subsection": [104], "group": [512], "subgroup": [6535],
"labels": [5, 104+9, 512+9+128, 6535+9+128+661]}
```
Thus, the record should be construed as follows:
```
{"id": "3930316",
"title": ["sighting", "firearm"],
"abstract": ["rear", "sight", "firearm", "ha", "peephole", "device", "formed", "hollow", "tube", "end", ...],
"section": [5], "subsection": [104], "group": [512], "subgroup": [6535],
"labels": [5, 113, 649, 7333]}
```
This repository can be used in other datasets (text classification) in two ways:
1. Modify your datasets into the same format of [the sample](https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification/tree/master/data).
2. Modify the data preprocess code in `data_helpers.py`.
Anyway, it should depend on what your data and task are.
### :octocat: Pre-trained Word Vectors
You can pre-training your word vectors(based on your corpus) in many ways:
- Use `gensim` package to pre-train data.
- Use `glove` tools to pre-train data.
- Even can use `bert` to pre-train data.
## Usage
See [Usage](https://github.com/RandolphVI/Hierarchical-Multi-Label-Text-Classification/blob/master/Usage.md).
## Network Structure

## Reference
**If you want to follow the paper or utilize the code, please note the following info in your work:**
```bibtex
@inproceedings{huang2019hierarchical,
author = {Wei Huang and
Enhong Chen and
Qi Liu and
Yuying Chen and
Zai Huang and
Yang Liu and
Zhou Zhao and
Dan Zhang and
Shijin Wang},
title = {Hierarchical Multi-label Text Classification: An Attention-based Recurrent Network Approach},
booktitle = {Proceedings of the 28th {ACM} {CIKM} International Conference on Information and Knowledge Management, {CIKM} 2019, Beijing, CHINA, Nov 3-7, 2019},
pages = {1051--1060},
year = {2019},
}
```
---
## About Me
黄威,Randolph
SCU SE Bachelor; USTC CS Ph.D.
Email: chinawolfman@hotmail.com
My Blog: [randolph.pro](http://randolph.pro)
LinkedIn: [randolph's linkedin](https://www.linkedin.com/in/randolph-%E9%BB%84%E5%A8%81/)
================================================
FILE: Usage.md
================================================
# Usage
## Options
### Input and output options
```
--train-file STR Training file. Default is `data/Train_sample.json`.
--validation-file STR Validation file. Default is `data/Validation_sample.json`.
--test-file STR Testing file. Default is `data/Test_sample.json`.
--word2vec-file STR Word2vec model file. Default is `data/word2vec_100.model`.
```
### Model option
```
--pad-seq-len INT Padding Sequence length of data. Depends on data.
--embedding-type INT The embedding type. Default is 1.
--embedding-dim INT Dim of character embedding. Default is 100.
--lstm-dim INT Dim of LSTM neurons. Default is 256.
--lstm-layers INT Number of LSTM layers. Defatul is 1.
--attention-dim INT Dim of Attention neurons. Default is 200.
--attention-penalization BOOL Use attention penalization or not. Default is True.
--fc-dim INT Dim of FC neurons. Default is 512.
--dropout-rate FLOAT Dropout keep probability. Default is 0.5.
--alpha FLOAT Weight of global part in loss cal. Default is 0.5.
--num-classes-list LIST Each number of labels in hierarchical structure. Depends on data.
--total-classes INT Total number of labels. Depends on data.
--topK INT Number of top K prediction classes. Default is 5.
--threshold FLOAT Threshold for prediction classes. Default is 0.5.
```
### Training option
```
--epochs INT Number of epochs. Default is 20.
--batch-size INT Batch size. Default is 32.
--learning-rate FLOAT Adam learning rate. Default is 0.001.
--decay-rate FLOAT Rate of decay for learning rate. Default is 0.95.
--decay-steps INT How many steps before decy lr. Default is 500.
--evaluate-steps INT How many steps to evluate val set. Default is 50.
--l2-lambda FLOAT L2 regularization lambda. Default is 0.0.
--checkpoint-steps INT How many steps to save model. Default is 50.
--num-checkpoints INT Number of checkpoints to store. Default is 10.
```
## Training
The following commands train the model.
```bash
$ python3 train_harnn.py
```
Training a model for a 30 epochs and set batch size as 256.
```bash
$ python3 train_harnn.py --epochs 30 --batch-size 256
```
In the beginning, you will see the program shows:

**You need to choose Training or Restore. (T for Training and R for Restore)**
After training, you will get the `/log` and `/run` folder.
- `/log` folder saves the log info file.
- `/run` folder saves the checkpoints.
It should be like this:
```text
.
├── logs
├── runs
│ └── 1586077936 [a 10-digital format]
│ ├── bestcheckpoints
│ ├── checkpoints
│ ├── embedding
│ └── summaries
├── test_harnn.py
├── text_harnn.py
└── train_harnn.py
```
**The programs name and identify the model by using the asctime (It should be 10-digital number, like 1586077936).**
## Restore
When your model stops training for some reason and you want to restore training, you can:
In the beginning, you will see the program shows:

**And you need to input R for restore.**
Then you will be asked to give the model name (a 10-digital format, like 1586077936):

And the model will continue training from the last time.
## Test
The following commands test the model.
```bash
$ python3 test_harnn.py
```
Then you will be asked to give the model name (a 10-digital format, like 1586077936):

And you can choose to use the best model or the latest model **(B for Best, L for Latest)**:

Finally, you can get the `predictions.json` file under the `/outputs` folder, it should be like:
```text
.
├── graph
├── logs
├── output
│ └── 1586077936
│ └── predictions.json
├── runs
│ └── 1586077936
│ ├── bestcheckpoints
│ ├── checkpoints
│ ├── embedding
│ └── summaries
├── test_harnn.py
├── text_harnn.py
└── train_harnn.py
```
================================================
FILE: data/Test_sample.json
================================================
{"id": "5973818", "title": ["method", "apparatus", "controlling", "electrochromic", "device"], "abstract": ["method", "concomitant", "apparatus", "electrochromic", "control", "system", "component", "causing", "charging", "discharging", "electrochromic", "device", "subject", "drift", "error", "error", "case", "error", "actual", "programming", "level", "desired", "programming", "level", "count", "diverge", "invention", "periodically", "determines", "actual", "programming", "level", "electrochromic", "device", "responsively", "adjusts", "parameter", "representative", "desired", "programming", "level"], "section": [6], "subsection": [107], "group": [538], "subgroup": [6846], "labels": [6, 116, 675, 7644]}
{"id": "5973822", "title": ["acousto-optic", "tunable", "filter", "method", "calculating", "equivalence", "incident", "angle"], "abstract": ["non-collinear", "type", "acousto-optic", "tunable", "filter", "incident", "angle", "source", "light", "beam", "radiated", "light", "source", "acoustic", "medium", "set", "equivalence", "incident", "angle", "wavelength", "lambda", "", "diffracted", "ordinary", "ray", "wavelength", "lambda", "", "", "diffracted", "extraordinary", "ray", "approximately", "identical", "diffracted", "ordinary", "ray", "diffracted", "extraordinary", "ray", "approximately", "identical", "wavelength", "superposed", "intensity", "superposed", "ray", "detected", "spectrometry", "performed", "based", "superposed", "diffracted", "ray", "intensity", "sharp", "waveform", "accurate", "spectroscopy", "made", "intensity", "source", "light", "beam", "low"], "section": [6], "subsection": [107], "group": [538], "subgroup": [6846], "labels": [6, 116, 675, 7644]}
{"id": "5974213", "title": ["transparent", "light", "guide", "member"], "abstract": ["light", "guide", "member", "guiding", "beam", "light", "light", "emitting", "element", "fixedly", "mounted", "printed", "circuit", "board", "display", "window", "defined", "casing", "encloses", "light", "emitting", "element", "printed", "circuit", "board", "light", "guide", "member", "includes", "transparent", "rod", "reflecting", "surface", "defined", "location", "length", "transparent", "rod", "transparent", "rod", "designed", "beam", "light", "travel", "dimension", "entire", "length", "transparent", "rod", "light", "receiving", "face", "defined", "end", "transparent", "rod", "light", "emitting", "face", "defined", "opposite", "end", "transparent", "rod"], "section": [6], "subsection": [107], "group": [536], "subgroup": [6834], "labels": [6, 116, 673, 7632]}
{"id": "5974232", "title": ["image", "processing", "apparatus", "executes", "abortion", "image", "processing", "method", "resuming", "aborted", "image", "processing"], "abstract": ["image", "processing", "apparatus", "includes", "input", "inputting", "image", "data", "subjected", "image", "process", "storage", "storing", "image", "data", "inputted", "input", "processing", "reading", "image", "data", "stored", "storage", "subjecting", "read", "image", "data", "instructed", "image", "process", "abortion", "aborting", "image", "process", "image", "data", "performed", "processing", "hold", "instructing", "giving", "instruction", "image", "data", "process", "ha", "aborted", "abortion", "continuously", "held", "storage", "hold", "continuously", "holding", "image", "data", "storage", "based", "instruction", "hold", "instructing", "execution", "reading", "image", "data", "storage", "held", "hold", "storage", "resuming", "image", "process", "image", "data", "aborted", "abortion", "delete", "deleting", "image", "data", "held", "storage", "hold"], "section": [7], "subsection": [123], "group": [639], "subgroup": [7945, 7935], "labels": [7, 132, 776, 8743, 8733]}
{"id": "5974275", "title": ["quality", "assessment", "device"], "abstract": ["quality", "assessment", "device", "provided", "electro-developing", "type", "camera", "electro-developing", "recording", "medium", "sense", "resistant", "electrostatic", "information", "recording", "medium", "provided", "electro-developing", "recording", "medium", "dark", "current", "sensing", "resistor", "connected", "series", "electrostatic", "information", "recording", "medium", "voltage", "sensing", "unit", "connected", "parallel", "dark", "current", "sensing", "resistor", "sense", "voltage", "generated", "release", "switch", "turned", "switch", "dark", "current", "sensing", "circuit", "includes", "dark", "current", "sensing", "resistor", "voltage", "sensing", "unit", "closed", "predetermined", "time", "ha", "elapsed", "dark", "current", "flowing", "dark", "current", "sensing", "resistor", "sensed", "dark", "current", "greater", "threshold", "deemed", "electrostatic", "information", "recording", "medium", "ha", "deteriorated"], "section": [6, 7], "subsection": [123, 107], "group": [639, 538], "subgroup": [7951, 6846, 7935], "labels": [6, 7, 132, 116, 776, 675, 8749, 7644, 8733]}
{"id": "5974343", "title": ["probe", "particulary", "urethral", "probe", "heating", "tissue", "microwave", "measurement", "temperature", "radiometry"], "abstract": ["probe", "urethral", "probe", "heating", "tissue", "microwave", "measurement", "temperature", "radiometry", "probe", "comprises", "hand", "elongated", "antenna", "formed", "conductive", "portion", "", "rolled", "helicoidal", "manner", "elongated", "dielectric", "support", "front", "end", "rear", "end", "hand", "electrical", "connection", "transfer", "microwave", "signal", "antenna", "connected", "external", "generator", "radiometer", "finally", "catheter", "covering", "antenna", "case", "portion", "electrical", "connection", "adjacent", "antenna", "central", "dielectric", "support", "ha", "structure", "circulation", "thermostatic", "fluid", "antenna", "present", "tubular", "channel", "delimited", "helicoidal", "conductor", "portion", "", "structure", "connected", "structure", "", "", "", "", "supply", "evacuation", "thermostatic", "fluid"], "section": [0], "subsection": [12], "group": [61], "subgroup": [705, 701], "labels": [0, 21, 198, 1503, 1499]}
{"id": "5974745", "title": ["self-aligning", "prefabricated", "door", "frame", "assembly"], "abstract": ["invention", "prefabricated", "door", "assembly", "installation", "roughed-in", "door", "frame", "assembly", "includes", "pair", "vertically", "extending", "door", "jamb", "interengaging", "casing", "header", "unit", "spanning", "upper", "end", "door", "jamb", "header", "unit", "includes", "header", "board", "jamb", "interengaging", "horizontal", "casing", "horizontal", "vertical", "casing", "pin", "nail", "protruding", "tongue", "portion", "engage", "jamb", "lightly", "transport", "installation", "prior", "final", "nailing", "place", "assembly", "includes", "l-shaped", "bracket", "affixed", "upper", "outer", "corner", "join", "fasten", "vertical", "horizontal", "jamb", "assembly", "packaged", "kit", "include", "hinge", "shim", "shimming", "hardware"], "section": [4], "subsection": [86], "group": [409], "subgroup": [5190], "labels": [4, 95, 546, 5988]}
{"id": "5974844", "title": ["combination", "key", "transponder", "carrier"], "abstract": ["improved", "combination", "key", "transporter", "assembly", "provided", "head", "key", "includes", "elongated", "slot", "pas", "head", "carrier", "molded", "slot", "disposed", "key", "head", "includes", "hollow", "interior", "bound", "plurality", "tab", "frictionally", "retaining", "transponder", "carrier", "transponder", "inserted", "carrier", "key", "head", "carrier", "transponder", "inserted", "mold", "outer", "sheath", "molded", "head", "carrier", "transponder", "resulting", "assembly", "ha", "slim", "profile", "mounted", "standard", "sized", "key", "chain", "key", "holder", "assembly", "manufactured", "automated", "process", "hand", "sub-assembly", "step"], "section": [6, 4, 8], "subsection": [112, 127, 85], "group": [660, 567, 403], "subgroup": [8360, 5115, 7133], "labels": [6, 4, 8, 121, 136, 94, 797, 704, 540, 9158, 5913, 7931]}
{"id": "5974927", "title": ["circular", "cutting", "machine"], "abstract": ["circular", "cutting", "position", "cutting", "workpiece", "predetermined", "location", "thereof", "gripper", "gripping", "workpiece", "predetermined", "location", "workpiece", "drive", "plurality", "gear", "including", "final", "penultimate", "stage", "gear", "backlash", "eliminator", "braking", "final", "stage", "gear", "eliminating", "backlash", "final", "penultimate", "stage", "gear", "initiation", "cutting", "workpiece", "cutting", "position"], "section": [8, 1, 5], "subsection": [26, 94, 127], "group": [452, 660, 126, 120], "subgroup": [5900, 8363, 1716, 1700, 1628], "labels": [8, 1, 5, 35, 103, 136, 589, 797, 263, 257, 6698, 9161, 2514, 2498, 2426]}
{"id": "5975272", "title": ["torsion", "damping", "device"], "abstract": ["torsion", "damping", "device", "provided", "friction", "device", "torsion", "damping", "device", "includes", "washer", "frictionally", "engaging", "disk", "axial", "action", "spring", "lug", "bearing", "guiding", "washer", "washer", "ha", "substantially", "annular", "shape", "act", "radially", "elastic", "damping", "member"], "section": [5], "subsection": [94], "group": [450], "subgroup": [5836], "labels": [5, 103, 587, 6634]}
{"id": "5975368", "title": ["bi-modal", "dispensing", "system", "particulate", "material"], "abstract": ["dispensing", "structure", "provided", "container", "ha", "opening", "product", "dispensed", "structure", "includes", "body", "extending", "container", "opening", "foraminous", "member", "provided", "plurality", "dispensing", "hole", "movable", "closed", "position", "open", "position", "lid", "provided", "sealingly", "occluding", "foraminous", "member", "moving", "closed", "position", "open", "position"], "section": [0, 1], "subsection": [11, 46], "group": [56, 237], "subgroup": [3015, 618], "labels": [0, 1, 20, 55, 193, 374, 3813, 1416]}
{"id": "5976228", "title": ["reducing", "agent", "forming", "acid", "resistant", "barrier"], "abstract": ["composition", "enhances", "acid", "resistance", "copper", "oxide", "composition", "includes", "solution", "alkali", "metal", "borohydride", "quaternary", "ammonium", "ion", "amount", "selected", "composition", "applied", "copper", "oxide", "composition", "enhances", "acid", "resistance", "copper", "oxide", "preferred", "alkali", "metal", "borohydride", "sodium", "borohydride", "potassium", "borohydride", "preferred", "quaternary", "ammonium", "ion", "ha", "formula", "independently", "comprises", "lower", "alkyl", "hydroxylalkyl", "carboxyalkyl", "group"], "section": [2, 7], "subsection": [124, 68], "group": [334, 649], "subgroup": [4552, 8056], "labels": [2, 7, 133, 77, 471, 786, 5350, 8854]}
{"id": "5976385", "title": ["pool", "cleaning", "sanitizing", "apparatus"], "abstract": ["pool", "apparatus", "simultaneously", "remove", "debris", "water", "kill", "bacteria", "portion", "water", "passing", "pool", "apparatus", "pool", "apparatus", "intake", "head", "drawing", "water", "debris", "region", "pool", "directing", "water", "debris", "housing", "restrictor", "directing", "portion", "water", "bacteria", "killing", "material", "remaining", "portion", "debris", "collector", "debris", "collected", "water", "returned", "pool"], "section": [2, 4], "subsection": [53, 84], "group": [262, 402], "subgroup": [3311, 5106, 3307], "labels": [2, 4, 62, 93, 399, 539, 4109, 5904, 4105]}
{"id": "5976513", "title": ["uv", "protection", "composition"], "abstract": ["present", "invention", "relates", "composition", "suitable", "providing", "protection", "harmful", "effect", "ultraviolet", "radiation", "composition", "provide", "excellent", "efficiency", "broad", "spectrum", "uv", "efficacy", "photostability", "method", "composition", "disclosed", "present", "composition", "comprise", "effective", "amount", "uva-absorbing", "dibenzoylmethane", "sunscreen", "active", "effective", "amount", "naphthalene", "derivative", "formula", "position", "independently", "selected", "group", "consisting", "cho", "cooh", "cor", "", "", "-", "straight", "branched", "alkyl", "aryl", "naphthalene", "derivative", "ha", "triplet", "energy", "state", "kcal", "mol", "kcal", "mol", "suitable", "carrier"], "section": [0], "subsection": [12], "group": [73, 68], "subgroup": [916, 852, 838], "labels": [0, 21, 210, 205, 1714, 1650, 1636]}
{"id": "5976845", "title": ["composite", "antibody", "human", "subgroup", "iv", "light", "chain", "capable", "binding"], "abstract": ["invention", "concern", "subset", "composite", "antibody", "high", "affinity", "high", "molecular", "weight", "tumor-associated", "sialylated", "glycoprotein", "antigen", "human", "origin", "antibody", "variable", "region", "segment", "derived", "human", "subgroup", "iv", "germline", "gene", "segment", "capable", "combining", "form", "dimensional", "structure", "ability", "bind", "vivo", "method", "treatment", "diagnostic", "assay", "composite", "antibody", "disclosed"], "section": [2, 0], "subsection": [58, 12], "group": [282, 68], "subgroup": [3714, 3720, 834], "labels": [2, 0, 67, 21, 419, 205, 4512, 4518, 1632]}
{"id": "5977360", "title": ["process", "producing", "cyclic", "hydrazine", "derivative", "tetra-hydropyridazine", "hexahydropyridazine"], "abstract": ["present", "invention", "relates", "process", "producing", "alicyclic", "hydrazine", "derivative", "tetrahydropyridazine", "hexahydropyridazine", "intermediate", "starting", "material", "medicine", "agricultural", "chemical", "present", "invention", "process", "producing", "alicyclic", "hydrazine", "derivative", "hydrohalogenic", "acid", "salt", "comprises", "reacting", "hydrazine", "hydrohalogenic", "acid", "salt", "diol", "compound", "alicyclic", "ether", "compound", "presence", "excessive", "inorganic", "acid", "existing", "free", "form", "form", "acid", "addition", "salt", "process", "producing", "tetrahydropyridazine", "comprises", "oxidizing", "oxidizing", "agent", "form", "tetrahydropyridazine", "process", "producing", "hexahydropyridazine", "comprises", "oxidizing", "oxidizing", "agent", "synthesizing", "tetrahydropyridazine", "hydrogenating", "tetrahydropyridazine", "presence", "base"], "section": [2], "subsection": [58], "group": [277], "subgroup": [3588, 3611, 3651], "labels": [2, 67, 414, 4386, 4409, 4449]}
{"id": "5977447", "title": ["soybean", "cultivar"], "abstract": ["soybean", "cultivar", "designated", "disclosed", "invention", "relates", "seed", "soybean", "cultivar", "plant", "soybean", "method", "producing", "soybean", "plant", "produced", "crossing", "cultivar", "soybean", "variety", "invention", "relates", "hybrid", "soybean", "seed", "plant", "produced", "crossing", "cultivar", "soybean", "cultivar"], "section": [0], "subsection": [0], "group": [5], "subgroup": [105], "labels": [0, 9, 142, 903]}
{"id": "5977696", "title": ["field", "emission", "electron", "gun", "capable", "minimizing", "nonuniform", "influence", "surrounding", "electric", "potential", "condition", "electron", "emitted", "emitter"], "abstract": ["field", "emission", "electron", "gun", "including", "emitter", "predetermined", "part", "substrate", "insulator", "film", "remaining", "part", "substrate", "gate", "electrode", "insulator", "film", "surround", "emitter", "space", "left", "emitter", "gate", "electrode", "outer", "peripheral", "surface", "defining", "emission", "region", "gate", "edge", "portion", "conductor", "formed", "insulator", "film", "surround", "outer", "peripheral", "surface", "gate", "electrode", "contact", "outer", "peripheral", "surface", "gate", "electrode", "gate", "electrode", "formed", "insulator", "film", "surround", "gate", "edge", "portion", "distance", "left", "gate", "edge", "portion", "gate", "electrode", "applied", "voltage", "le", "voltage", "applied", "gate", "electrode"], "section": [7], "subsection": [120], "group": [605], "subgroup": [7521], "labels": [7, 129, 742, 8319]}
{"id": "5977705", "title": ["photocathode", "image", "intensifier", "tube", "active", "layer", "comprised", "substantially", "amorphic", "diamond-like", "carbon", "diamond", "combination"], "abstract": ["photocathode", "image", "intensifier", "tube", "include", "active", "layer", "comprised", "substantially", "amorphic", "diamond-like", "carbon", "diamond", "combination", "photocathode", "ha", "face", "plate", "coupled", "active", "layer", "active", "layer", "operable", "emit", "electron", "response", "photon", "striking", "face", "plate"], "section": [7], "subsection": [120], "group": [605], "subgroup": [7520, 7506, 7501, 7537], "labels": [7, 129, 742, 8318, 8304, 8299, 8335]}
{"id": "5977945", "title": ["display", "control", "apparatus"], "abstract": ["display", "control", "apparatus", "includes", "display", "device", "driver", "writing", "image", "information", "frame", "buffer", "display", "scanning", "sequentially", "displaying", "image", "data", "stored", "frame", "buffer", "line", "display", "display", "control", "apparatus", "includes", "partially", "rewritten", "line", "determination", "obtaining", "display", "device", "driver", "information", "line", "written", "frame", "buffer", "generating", "accordance", "therewith", "line", "display", "scanned", "display", "scan", "line", "control", "obtaining", "partially", "rewritten", "line", "determination", "line", "scanned", "line", "display", "scanning"], "section": [6], "subsection": [114], "group": [578], "subgroup": [7234, 7225, 7226], "labels": [6, 123, 715, 8032, 8023, 8024]}
{"id": "5977964", "title": ["method", "apparatus", "automatically", "configuring", "system", "based", "user", "monitored", "system", "interaction", "preferred", "system", "access", "time"], "abstract": ["method", "apparatus", "automatically", "configuring", "system", "based", "user", "monitored", "system", "interaction", "preferred", "system", "access", "time", "update", "user", "profile", "user", "based", "part", "monitored", "user", "interaction", "system", "preferred", "system", "access", "time", "user", "identified", "based", "part", "user", "profile", "system", "automatically", "configured", "based", "part", "user", "profile", "user", "preferred", "system", "access", "time"], "section": [6, 7], "subsection": [116, 123], "group": [587, 634, 639], "subgroup": [7938, 7943, 7949, 7294, 7950, 7873], "labels": [6, 7, 125, 132, 724, 771, 776, 8736, 8741, 8747, 8092, 8748, 8671]}
{"id": "5978023", "title": ["color", "video", "camera", "system", "method", "generating", "color", "video", "signal", "increased", "line", "frame", "rate"], "abstract": ["method", "apparatus", "disclosed", "generating", "video", "signal", "representative", "color", "image", "scene", "embodiment", "method", "includes", "step", "deriving", "luminance", "signal", "representative", "scene", "frame", "rate", "deriving", "color", "component", "signal", "representative", "scene", "line", "rate", "generating", "luminance", "signal", "converted", "luminance", "signal", "comprising", "high", "spatial", "frequency", "portion", "luminance", "signal", "frame", "rate", "higher", "frame", "rate", "generating", "color", "component", "signal", "converted", "color", "component", "signal", "line", "rate", "higher", "line", "rate", "combining", "converted", "luminance", "component", "signal", "converted", "color", "component", "signal"], "section": [7], "subsection": [123], "group": [639], "subgroup": [7950, 7951], "labels": [7, 132, 776, 8748, 8749]}
{"id": "5978139", "title": ["diffraction", "grating", "lens", "optical", "disk", "recording", "reproducing", "apparatus"], "abstract": ["invention", "diffraction", "grating", "lens", "suitable", "objective", "lens", "optical", "disk", "recording", "reproducing", "apparatus", "lens", "includes", "light", "transmissive", "substrate", "refractive", "index", "larger", "plane", "plane", "diffraction", "grating", "pattern", "lens", "effect", "constituted", "plurality", "diffraction", "grating", "formed", "plane", "light", "transmissive", "substrate", "diffraction", "grating", "pattern", "focusing", "incident", "light", "beam", "flux", "focal", "point", "provided", "side", "plane", "light", "transmissive", "substrate", "formed", "numerical", "aperture", "calculated", "focal", "point", "peak", "point", "larger"], "section": [6, 1], "subsection": [116, 51, 107], "group": [587, 255, 536], "subgroup": [6833, 3228, 7299], "labels": [6, 1, 125, 60, 116, 724, 392, 673, 7631, 4026, 8097]}
{"id": "5978213", "title": ["electronic", "device", "adjustably", "mounted", "infrared", "device", "tension", "cable"], "abstract": ["adjustably", "mounted", "infrared", "device", "electronic", "device", "disclosed", "embodiment", "invention", "computer", "computer", "ha", "housing", "integral", "infrared", "device", "housing", "ha", "plurality", "surface", "protect", "processor", "housing", "integral", "infrared", "device", "mounted", "adjustably", "housing", "permit", "positioning", "device", "desired", "direction", "independent", "movement", "housing", "embodiment", "invention", "include", "computer", "keyboard", "computer", "printer", "computer", "monitor", "integral", "infrared", "device", "mounted", "adjustably", "thereto", "permit", "position", "device", "desired", "direction", "movement", "keyboard", "printer", "monitor"], "section": [6, 8, 7], "subsection": [120, 127, 111], "group": [660, 558, 604], "subgroup": [7058, 7450, 8347, 7033], "labels": [6, 8, 7, 129, 136, 120, 797, 695, 741, 7856, 8248, 9145, 7831]}
{"id": "5978222", "title": ["semiconductor", "device", "assembly", "board", "through-holes", "filled", "filling", "core"], "abstract": ["semiconductor", "device", "includes", "board", "base", "through-holes", "filled", "filling", "core", "additive", "layer", "provided", "upper", "surface", "board", "base", "upper", "surface", "filling", "core", "additive", "layer", "includes", "wiring", "pattern", "path", "semiconductor", "chip", "fixed", "upper", "surface", "additive", "layer", "node", "provided", "lower", "surface", "board", "base", "path", "laid", "restriction", "posed", "through-holes", "electrically", "connecting", "semiconductor", "chip", "node"], "section": [7], "subsection": [120, 124], "group": [607, 649], "subgroup": [7560, 7550, 7555, 8056, 7551, 8054, 7556, 7546, 7554], "labels": [7, 129, 133, 744, 786, 8358, 8348, 8353, 8854, 8349, 8852, 8354, 8344, 8352]}
{"id": "5978359", "title": ["allocated", "dynamic", "switch", "flow", "control"], "abstract": ["system", "disclosed", "eliminating", "cell", "loss", "flow", "control", "allocated", "dynamic", "bandwidth", "output", "buffer", "switch", "filled", "predetermined", "threshold", "level", "feedback", "message", "provided", "input", "buffer", "prevent", "transmission", "cell", "input", "buffer", "output", "buffer", "order", "provide", "connection", "traffic", "type", "isolation", "buffer", "grouped", "queue", "flow", "control", "implemented", "queue", "basis", "feedback", "message", "digital", "signal", "including", "accept", "reject", "message", "no-op", "xoff", "message", "xoff", "message", "received", "transmitting", "allocated", "bandwidth", "dynamic", "bandwidth", "xoff", "allocated", "message", "received", "regard", "allocated", "bandwidth", "xoff", "dynamic", "message", "received", "regard", "dynamic", "bandwidth", "accept", "received", "requesting", "input", "queue", "cell", "transferred", "output", "queue", "reject", "received", "requesting", "queue", "cell", "transferred", "xoff", "dynamic", "received", "requesting", "input", "queue", "request", "transfer", "output", "queue", "requesting", "input", "queue", "dynamic", "bandwidth", "halted", "receipt", "xon", "message", "output", "queue", "xoff", "allocated", "received", "requesting", "input", "queue", "request", "transfer", "output", "queue", "requesting", "input", "queue", "allocated", "bandwidth", "halted", "receipt", "xon", "message", "output", "queue"], "section": [6, 8, 7], "subsection": [123, 127, 111], "group": [640, 659, 637, 635, 558, 643], "subgroup": [7889, 7916, 8229, 7893, 7915, 7904, 8002, 7907, 7953, 7881, 7037, 7908], "labels": [6, 8, 7, 132, 136, 120, 777, 796, 774, 772, 695, 780, 8687, 8714, 9027, 8691, 8713, 8702, 8800, 8705, 8751, 8679, 7835, 8706]}
{"id": "5978534", "title": ["fiber", "optic", "raman", "probe", "coupler", "assembly"], "abstract": ["fiber", "optic", "raman", "probe", "optical", "coupler", "assembly", "method", "making", "assembly", "reproducibly", "aligning", "plurality", "optical", "fiber", "probe", "includes", "housing", "probe", "body", "probe", "tip", "window", "protecting", "interior", "housing", "light-transmitting", "fiber", "light-receiving", "fiber", "spaced", "light-transmitting", "fiber", "optical", "coupler", "desired", "in-line", "device", "filter", "lens", "positioned", "optical", "communication", "fiber", "coupler", "assembly", "includes", "aligning", "maintain", "fiber", "precise", "reproducible", "relative", "alignment", "fiber", "assembly", "fiber", "cut", "install", "filter", "in-line", "device", "readily", "re-assembled", "cut", "end", "accurately", "re-aligned", "probe", "simple", "rugged", "manufactured", "assembled", "high-precision", "machining", "optical", "alignment", "procedure"], "section": [6], "subsection": [106, 107], "group": [528, 536], "subgroup": [6721, 6834], "labels": [6, 115, 116, 665, 673, 7519, 7632]}
{"id": "5978758", "title": ["vector", "quantizer", "quantization", "input", "base", "vector", "quantization", "input", "vector", "quantization", "output"], "abstract": ["vector", "quantizer", "generates", "output", "codevectors", "number", "number", "determined", "predetermined", "number", "bit", "linear", "coupling", "integer", "coefficient", "predetermined", "number", "base", "vector", "stored", "base", "vector", "memory", "vector", "quantizer", "determines", "coefficient", "base", "vector", "output", "index", "output", "codevectors"], "section": [6, 7], "subsection": [115, 122], "group": [632, 586], "subgroup": [7853, 7273], "labels": [6, 7, 124, 131, 769, 723, 8651, 8071]}
{"id": "5978912", "title": ["network", "enhanced", "bios", "enabling", "remote", "management", "computer", "functioning", "operating", "system"], "abstract": ["method", "system", "communicating", "computer", "network", "prior", "booting", "computer", "operating", "system", "operating", "system", "failure", "provided", "multitasking", "kernel", "implemented", "network", "enhanced", "bios", "external", "reference", "nic", "device", "driver", "resolved", "reference", "service", "provided", "network", "enhanced", "bios", "workstation", "coupled", "computer", "network", "access", "set", "status", "computer", "prior", "loading", "operating", "system", "operating", "system", "failure", "multitasking", "kernel", "operated", "simultaneously", "conventional", "bios", "computer", "provided", "alerting", "workstation", "event", "post", "failure", "operating", "system", "crash"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7062, 7034], "labels": [6, 120, 695, 7860, 7832]}
{"id": "5979014", "title": ["mobile", "wet", "dry", "vacuum", "device"], "abstract": ["wet", "dry", "vacuum", "device", "includes", "canister", "unit", "pivotally", "mounted", "upstanding", "portion", "support", "carriage", "movement", "lowered", "in-use", "position", "raised", "emptying", "position", "pivotally", "attached", "upstanding", "portion", "support", "carriage", "lifting", "assist", "lever", "canister", "unit", "rest", "movement", "lowered", "raised", "position", "interposed", "carriage", "lifting", "assist", "lever", "device", "linear", "acting", "fluid", "spring", "assisting", "manually", "tilting", "canister", "unit", "fluid", "spring", "preferably", "interconnected", "carriage", "lifting", "assist", "lever", "respective", "loss", "motion", "connection", "enable", "large", "tilting", "range", "canister", "unit", "minimizing", "required", "length", "fluid", "spring", "canister", "unit", "readily", "removable", "remainder", "wet", "dry", "vacuum", "device", "provided", "pouring", "spout", "extending", "rearwardly", "upper", "portion", "thereof", "enhance", "draining", "content", "canister", "unit", "tilting", "canister", "unit", "removal", "thereof", "carriage"], "section": [0], "subsection": [11], "group": [60], "subgroup": [695, 696], "labels": [0, 20, 197, 1493, 1494]}
{"id": "5979074", "title": ["method", "device", "drying", "sawn", "timber", "reduced", "pressure"], "abstract": ["invention", "relates", "process", "apparatus", "dry", "cut", "timber", "hygroscopical", "plate-shaped", "bar-shaped", "good", "subatmospheric", "pressure", "vacuum-solid", "drying", "chamber", "equiped", "ventilator", "fan", "effecting", "crosswise", "length", "axis", "chamber", "revolve", "gaseous", "drying", "medium", "heating", "coil", "extending", "length", "chamber", "dehumidifying", "device", "condenser", "task", "invention", "regulate", "heat", "energy", "supply", "individual", "stack", "area", "removal", "humidity", "contained", "wood", "independent", "stack", "area", "charge", "drying", "chamber", "existing", "arising", "dispersion", "wood", "moisture", "stack", "area", "due", "inhomogeneous", "condition", "inside", "drying", "chamber", "eliminated", "drying", "stage", "entering", "final", "equalizing", "conditioning", "stage"], "section": [5], "subsection": [101], "group": [499], "subgroup": [6402, 6408], "labels": [5, 110, 636, 7200, 7206]}
{"id": "5979226", "title": ["leak", "detection", "additive", "oil", "fuel", "system"], "abstract": ["dye-delivery", "composition", "introducing", "leak", "detection", "dye", "engine", "oil", "fuel", "system", "dye-delivery", "composition", "mixture", "lubricant", "leak", "detection", "dye", "dye-delivery", "composition", "thixotropic", "paste", "suspension", "unitary", "structure", "dye-delivery", "composition", "inserted", "location", "engine", "oil", "fuel", "system"], "section": [6, 2, 8], "subsection": [106, 61, 127], "group": [307, 527, 659], "subgroup": [4268, 8188, 6701], "labels": [6, 2, 8, 115, 70, 136, 444, 664, 796, 5066, 8986, 7499]}
{"id": "5979393", "title": ["engine", "control", "unit", "mounting", "apparatus", "motor", "vehicle"], "abstract": ["commonly", "engine", "control", "unit", "mounted", "place", "passenger", "compartment", "present", "invention", "engine", "control", "unit", "mounting", "apparatus", "accommodating", "engine", "control", "unit", "directly", "mounted", "engine", "utilizing", "space", "bank", "offset", "side", "left", "bank", "engine", "control", "unit", "mounting", "apparatus", "includes", "material", "good", "heat", "conductivity", "aluminum", "alloy", "connecting", "terminal", "directed", "passenger", "compartment", "result", "electrical", "connection", "wiring", "harness", "passenger", "compartment", "easy", "advantage", "present", "invention", "shorten", "length", "wiring", "harness", "engine", "control", "unit", "sensor", "switch", "actuator", "engine", "facilitate", "connection", "wiring", "harness"], "section": [1], "subsection": [41], "group": [202], "subgroup": [2521], "labels": [1, 50, 339, 3319]}
{"id": "5979461", "title": ["smoking", "article", "wrapper", "filler", "hydromagnesite", "magnesium", "hydroxide", "smoking", "article", "made", "wrapper"], "abstract": ["hydromagnesite-magnesium", "hydroxide", "composition", "filler", "smoking", "article", "wrapper", "significantly", "reduce", "amount", "sidestream", "smoke", "produced", "burning", "smoking", "article", "providing", "smoking", "article", "good", "subjective", "characteristic"], "section": [0], "subsection": [4], "group": [30], "subgroup": [317], "labels": [0, 13, 167, 1115]}
{"id": "5979562", "title": ["hoof", "care", "stand", "livestock"], "abstract": ["farrier", "stand", "steel", "rod", "construction", "elliptical-shaped", "hoof", "cradle", "method", "constructing", "stand", "includes", "bending", "parallel", "connected", "rod", "mandrel", "jig", "rod", "separated", "connection", "form", "hoof", "cradle", "inverted", "u-shaped", "stand", "supported", "composite", "apex", "leg", "spaced-apart", "singular", "rod", "leg"], "section": [0], "subsection": [0], "group": [8], "subgroup": [158, 157], "labels": [0, 9, 145, 956, 955]}
{"id": "5979771", "title": ["apparatus", "verify", "position", "electrical", "contact", "sliding", "sim", "mechanism"], "abstract": ["sim", "contact", "position", "tester", "verifying", "position", "sim", "card", "contact", "printed", "wiring", "board", "provided", "trace", "a-d", "correspond", "contact", "sim", "card", "reader", "connector", "configured", "mate", "contact", "sim", "card", "reader", "connector", "mounted", "radio", "telephone", "plurality", "light", "emitting", "diode", "led", "coupled", "trace", "a-d", "light", "emitting", "diode", "configured", "provide", "indication", "position", "contact", "pwb", "positioned", "radio", "telephone", "embodiment", "led", "sequentially", "light", "printed", "wiring", "board", "moved", "position", "contact", "sim", "card", "reader", "connector"], "section": [6, 7], "subsection": [124, 111], "group": [649, 561], "subgroup": [8051, 7080], "labels": [6, 7, 133, 120, 786, 698, 8849, 7878]}
{"id": "5979938", "title": ["adjustable", "steering", "column", "motor", "vehicle"], "abstract": ["adjustable", "motor", "vehicle", "steering", "column", "including", "stationary", "element", "adjustable", "element", "supported", "stationary", "element", "relative", "linear", "translation", "steering", "wheel", "adjustable", "element", "infinitely", "adjustable", "primary", "clamp", "secondary", "clamp", "preventing", "relative", "linear", "translation", "adjustable", "element", "collapse", "direction", "event", "primary", "clamp", "overpowered", "primary", "clamp", "includes", "pair", "depending", "lever", "stationary", "element", "pair", "bos", "depending", "lever", "control", "shaft", "spanning", "depending", "lever", "rotatable", "control", "lever", "cam", "depending", "lever", "follower", "control", "shaft", "cam", "follower", "flex", "depending", "lever", "thrust", "bos", "adjustable", "element", "capture", "friction", "position", "relative", "stationary", "element", "secondary", "clamp", "includes", "tubular", "sleeve", "control", "shaft", "eccentric", "lobe", "spring", "biased", "planar", "race", "adjustable", "element", "primary", "clamp", "overpowered", "onset", "relative", "linear", "translation", "planar", "race", "rotates", "sleeve", "direction", "progressively", "tightly", "wedge", "eccentric", "lobe", "planar", "race"], "section": [1], "subsection": [43], "group": [219], "subgroup": [2675], "labels": [1, 52, 356, 3473]}
{"id": "5980055", "title": ["chemiluminescent", "device", "integral", "light", "shield"], "abstract": ["instant", "invention", "light", "shield", "formed", "integral", "chemiluminescent", "device", "effectively", "block", "ambient", "light", "inhibiting", "photo", "degradation", "chemical", "reagent", "exposed", "external", "light", "source", "light", "shield", "displaces", "conventional", "foil", "product", "packaging", "designed", "protect", "light", "permit", "instant", "easy", "activation", "chemiluminescent", "reagent", "interfering", "chemiluminescent", "reaction", "integral", "light", "shield", "simplify", "packaging", "extend", "product", "shelf", "life", "chemiluminescent", "reagent"], "section": [5], "subsection": [96], "group": [465], "subgroup": [6036], "labels": [5, 105, 602, 6834]}
{"id": "5980249", "title": ["method", "device", "treatment", "dentition"], "abstract": ["dental", "appliance", "adaptable", "fit", "range", "variously", "sized", "dental", "arch", "composed", "polymeric", "material", "preferably", "comprises", "hydrophilic", "foam", "medicinal", "agent", "carbamide", "peroxide", "dry", "hydrated", "form", "incorporated", "predispensed", "embodiment", "invention", "appliance", "provided", "packaging", "medicinal", "agent", "provided", "separate", "dispenser", "minimizes", "prevents", "permeation", "water"], "section": [0], "subsection": [12], "group": [62], "subgroup": [733], "labels": [0, 21, 199, 1531]}
{"id": "5980338", "title": ["low", "profile", "female", "terminal", "mating", "post-like", "male", "terminal"], "abstract": ["one-piece", "female", "terminal", "provided", "interconnection", "post-like", "male", "terminal", "female", "terminal", "includes", "base", "portion", "plurality", "inwardly", "curved", "contact", "beam", "integral", "extending", "base", "portion", "defining", "interior", "socket", "receiving", "male", "terminal", "plurality", "shell", "finger", "integral", "extend", "base", "portion", "exteriorly", "contact", "beam", "provide", "protection", "beam"], "section": [7], "subsection": [120], "group": [611], "subgroup": [7611, 7617, 7610], "labels": [7, 129, 748, 8409, 8415, 8408]}
{"id": "5980361", "title": ["method", "device", "polishing", "semiconductor", "wafer"], "abstract": ["method", "polishing", "semiconductor", "wafer", "mounted", "front", "side", "support", "plate", "side", "face", "pressed", "anst", "polishing", "plate", "covered", "polishing", "cloth", "specific", "polishing", "pressure", "polished", "device", "provided", "suitable", "carrying", "method", "method", "includes", "applying", "specific", "pressure", "plurality", "pressure", "chamber", "prior", "polishing", "semiconductor", "wafer", "polishing", "semiconductor", "wafer", "transmitting", "polishing", "pressure", "rear", "side", "support", "plate", "elastic", "bearing", "surface", "pressure", "chamber", "pressure", "ha", "applied"], "section": [1], "subsection": [27], "group": [127], "subgroup": [1733, 1735, 1738], "labels": [1, 36, 264, 2531, 2533, 2536]}
{"id": "5980608", "title": ["throughflow", "gas", "storage", "dispensing", "system"], "abstract": ["apparatus", "storage", "dispensing", "gas", "comprising", "gas", "storage", "dispensing", "vessel", "holding", "physical", "sorbent", "medium", "gas", "adsorbed", "physical", "sorbent", "medium", "carrier", "gas", "helium", "hydrogen", "argon", "flowed", "vessel", "effect", "desorption", "sorbate", "gas", "entrainment", "desorbed", "gas", "carrier", "gas", "stream", "storage", "dispensing", "system", "invention", "employed", "provide", "dispensed", "sorbate", "gas", "downstream", "locus", "application", "epitaxial", "film", "formation", "ion", "implantation", "manufacture", "semiconductor", "device"], "section": [5], "subsection": [95], "group": [462], "subgroup": [6013], "labels": [5, 104, 599, 6811]}
{"id": "5980634", "title": ["coating", "applicator", "blade", "shaping"], "abstract": ["flexible", "blade", "metering", "device", "inserted", "nip", "formed", "radiused", "profile", "portion", "fixed", "rigid", "loading", "element", "substrate", "roll", "flexible", "blade", "forced", "shape", "profile", "portion", "nip", "meter", "coating", "desired", "thickness", "consistency", "inflatable", "air", "tube", "engage", "loading", "element", "adjust", "thickness", "coating"], "section": [3, 1], "subsection": [19, 80], "group": [382, 98], "subgroup": [4910, 1322, 1317], "labels": [3, 1, 28, 89, 519, 235, 5708, 2120, 2115]}
{"id": "5981225", "title": ["gene", "transfer", "vector", "recombinant", "adenovirus", "particle", "method", "producing", "method"], "abstract": ["gene", "transfer", "vector", "comprising", "adenovirus", "inverted", "terminal", "repeat", "adenovirus", "packaging", "signal", "adenoviral", "vai", "gene", "vaii", "gene", "recombinant", "adenovirus", "particle", "method", "producing", "method", "introduce", "express", "foreign", "gene", "adenovirus", "target", "cell", "disclosed"], "section": [2], "subsection": [63], "group": [319], "subgroup": [4362, 4348], "labels": [2, 72, 456, 5160, 5146]}
{"id": "5981268", "title": ["hybrid", "biosensors"], "abstract": ["invention", "relates", "apparatus", "method", "monitoring", "cell", "method", "monitoring", "change", "cell", "addition", "analyte", "cell", "environment", "comprising", "device", "includes", "array", "microelectrodes", "disposed", "cell", "culture", "chamber", "array", "portion", "cell", "adhere", "surface", "microelectrodes", "diameter", "cell", "larger", "diameter", "microelectrodes", "voltage", "signal", "applied", "microelectrodes", "reference", "electrode", "detection", "monitoring", "signal", "resulting", "application", "voltage", "signal", "information", "electrical", "characteristic", "individual", "cell", "including", "impedance", "combined", "cell", "membrane", "capacitance", "conductance", "action", "potential", "parameter", "cell", "membrane", "capacitance", "cell", "membrane", "conductance", "cell", "substrate", "seal", "resistance", "invention", "detecting", "screening", "variety", "biological", "chemical", "agent"], "section": [6, 2], "subsection": [106, 63], "group": [318, 528], "subgroup": [4341, 6748], "labels": [6, 2, 115, 72, 455, 665, 5139, 7546]}
{"id": "5981290", "title": ["microscale", "combustion", "calorimeter"], "abstract": ["calorimeter", "measuring", "flammability", "parameter", "material", "milligram", "sample", "quantity", "thermochemical", "thermophysical", "process", "flaming", "combustion", "solid", "reproduced", "device", "rapid", "anaerobic", "pyrolysis", "thermogravimetric", "analyzer", "volatile", "anaerobic", "thermal", "decomposition", "product", "swept", "pyrolysis", "chamber", "inert", "gas", "combined", "excess", "oxygen", "combustion", "chamber", "maintained", "hundred", "degree", "centigrade", "simulate", "combustion", "reaction", "occur", "ventilated", "diffusion", "flame", "mass", "loss", "measured", "continuously", "process", "heat", "release", "rate", "calculated", "oxygen", "consumed", "gas", "stream"], "section": [6], "subsection": [106], "group": [525, 528], "subgroup": [6750, 6671], "labels": [6, 115, 662, 665, 7548, 7469]}
{"id": "5981624", "title": ["composition"], "abstract": ["reduced", "shade", "paint", "ink", "comprising", "base", "paint", "ink", "comprising", "base", "pigment", "titanium", "dioxide", "film-forming", "resin", "non-polar", "liquid", "white", "spirit", "dispersant", "phosphate", "ester", "compound", "formula", "group", "ro", "--", "group", "--", "eo", "--", "-", "alkyl", "independently", "tinter", "composition", "comprising", "colored", "pigment", "water", "water-miscible", "solvent", "ethyleneglycol"], "section": [2, 1], "subsection": [15, 60, 59], "group": [293, 87, 286], "subgroup": [4080, 3852, 4043, 1181], "labels": [2, 1, 24, 69, 68, 430, 224, 423, 4878, 4650, 4841, 1979]}
{"id": "5981852", "title": ["modification", "sucrose", "phosphate", "synthase", "plant"], "abstract": ["sucrose", "phosphate", "synthase", "sps", "process", "preparation", "dna", "utilization", "dna", "encoding", "sps", "modify", "expression", "sps", "plant", "cell", "provided", "method", "composition", "producing", "sps", "protein", "dna", "encoding", "sps", "number", "source", "provided", "provided", "transgene", "comprising", "dna", "encoding", "sps", "method", "production", "transgenic", "plant", "cell", "plant", "extra", "sps", "activity", "increased", "capacity", "synthesize", "sucrose", "transgenic", "plant", "cell", "plant", "additional", "sps", "activity", "exhibit", "altered", "carbon", "partitioning", "growth", "development", "yield", "variety", "condition"], "section": [2, 8], "subsection": [63, 125, 58], "group": [650, 319, 282], "subgroup": [4378, 4348, 8063, 3714], "labels": [2, 8, 72, 134, 67, 787, 456, 419, 5176, 5146, 8861, 4512]}
{"id": "5981861", "title": ["electro-mechanically", "driven", "sound", "board"], "abstract": ["sound", "replicating", "device", "ha", "electro-mechanically", "driven", "sound", "board", "mounted", "sound", "replicating", "device", "electro-mechanically", "driven", "sound", "board", "adapted", "resonator", "board", "instrument"], "section": [6], "subsection": [115], "group": [584], "subgroup": [7258, 7255], "labels": [6, 124, 721, 8056, 8053]}
{"id": "5981876", "title": ["pc", "cable", "protective", "sheath", "prestressed", "concrete"], "abstract": ["sheath", "provided", "condition", "outer", "surface", "thereof", "formed", "uneven", "helical", "shape", "outer", "surface", "trough", "flat", "width", "trough", "inflection", "point", "curve", "surface", "trough", "width", "top", "inflection", "point", "curve", "top", "satisfy", "relation", ">w", "thickness", "trough", "thickness", "top", "satisfy", "relation", ">t", "projection", "surface", "trough", "formed", "gentle", "arc", "compared", "recess", "surface", "top", "perimeter", "recess", "surface", "project", "circumferentially", "outward", "outer-perimeter", "outer", "surface", "trough", "sheath", "formed", "polyolefin", "resin", "material"], "section": [4], "subsection": [84], "group": [398], "subgroup": [5047], "labels": [4, 93, 535, 5845]}
{"id": "5981908", "title": ["heating", "apparatus", "vertically", "stacked", "hair", "roller"], "abstract": ["hair", "roller", "heating", "apparatus", "heating", "hair", "roller", "ha", "base", "plurality", "heating", "rod", "sufficient", "length", "simultaneously", "hold", "heat", "plurality", "hair", "roller", "heating", "rod", "distal", "portion", "proximal", "portion", "proximal", "portion", "attached", "base", "distal", "portion", "free", "receiving", "hair", "roller", "heating", "rod", "outer", "casing", "heating", "element", "outer", "casing", "electrical", "cord", "electricity", "electrical", "source", "heating", "element", "heating", "rod", "impart", "sufficient", "heat", "hair", "roller", "heat", "roller", "desired", "temperature", "preferred", "embodiment", "heating", "rod", "inch", "length"], "section": [0], "subsection": [9], "group": [48], "subgroup": [497], "labels": [0, 18, 185, 1295]}
{"id": "5981931", "title": ["image", "pick-up", "device", "radiation", "imaging", "apparatus", "device"], "abstract": ["image", "pick-up", "device", "comprises", "insulating", "substrate", "plurality", "pixel", "including", "photo-electric", "conversion", "circuit", "thin-film", "transistor", "connected", "photoelectric", "conversion", "circuit", "including", "lamination", "insulating", "film", "semiconductor", "film", "pixel", "mounted", "array", "insulating", "substrate", "plurality", "signal", "line", "read", "voltage", "store", "photoelectric", "conversion", "circuit", "thin-film", "transistor", "formed", "insulating", "substrate", "plurality", "wiring", "formed", "insulating", "substrate", "insulating", "film", "lamination", "thin-film", "transistor", "formed", "wiring", "signal", "line", "crossing", "thereof"], "section": [7], "subsection": [123, 120], "group": [607, 639], "subgroup": [7557, 7949], "labels": [7, 132, 129, 744, 776, 8355, 8747]}
{"id": "5982031", "title": ["power", "semiconductor", "module", "closed", "submodules"], "abstract": ["present", "invention", "discloses", "power", "semiconductor", "module", "encapsulated", "submodules", "suitable", "power", "switch", "rectifier", "industrial", "traction", "drive", "submodules", "sandwiched", "structure", "made", "ceramic", "substrate", "power", "semiconductor", "chip", "molybdenum", "wafer", "potted", "plastic", "held", "plug-in", "location", "common", "baseplate", "make", "contact", "stack", "arrangement", "conductor", "retention", "contact", "submodules", "place", "reversibly", "pressure", "contact", "clamp", "contact", "important", "advantage", "power", "semiconductor", "module", "relate", "simple", "easily", "scaleable", "structure", "improved", "ability", "withstand", "thermal", "load", "cycle", "robustness", "easy", "interchangeability", "submodules"], "section": [7], "subsection": [120], "group": [607], "subgroup": [7560, 7556, 7550], "labels": [7, 129, 744, 8358, 8354, 8348]}
{"id": "5982221", "title": ["switched", "current", "temperature", "sensor", "circuit", "compounded", "delta"], "abstract": ["switched", "current", "temperature", "sensor", "circuit", "compounded", "delta", "includes", "amplifier", "inverting", "input", "non-inverting", "output", "non-inverting", "input", "inverting", "output", "pn", "junction", "connected", "non-inverting", "input", "input", "capacitor", "pn", "junction", "connected", "inverting", "input", "input", "capacitor", "current", "supply", "including", "low", "current", "source", "high", "current", "source", "switching", "device", "applying", "auto", "mode", "high", "current", "source", "terminal", "pn", "junction", "low", "current", "source", "terminal", "pn", "junction", "providing", "junction", "capacitor", "providing", "junction", "capacitor", "applying", "temperature", "measurement", "mode", "low", "current", "source", "terminal", "pn", "junction", "high", "current", "source", "terminal", "pn", "junction", "providing", "negative", "delta", "pn", "junction", "capacitor", "positive", "delta", "pn", "junction", "capacitor", "feedback", "capacitor", "interconnected", "inverting", "output", "non-inverting", "input", "feedback", "capacitor", "interconnected", "non-inverting", "output", "inverting", "input", "amplifier", "define", "gain", "delta", "input", "produce", "differential", "voltage", "output", "representative", "average", "temperature", "pn", "junction", "reset", "switching", "device", "discharging", "feedback", "capacitor", "enabling", "amplifier", "equalize", "input", "auto-zero", "mode"], "section": [6, 7], "subsection": [106, 120], "group": [607, 525], "subgroup": [7560, 7554, 6680], "labels": [6, 7, 115, 129, 744, 662, 8358, 8352, 7478]}
{"id": "5982301", "title": ["navigation", "apparatus"], "abstract": ["navigation", "apparatus", "capable", "outputting", "guide", "information", "point", "input", "driver", "response", "request", "driver", "previously", "store", "map", "information", "specifies", "automobile", "position", "map", "information", "detecting", "signal", "gps", "signal", "gyroscopic", "signal", "speed", "pulse", "signal", "retrieves", "point", "guided", "map", "information", "basis", "present", "position", "automobile", "produce", "guide", "information", "point", "guided", "processing", "map", "information", "display", "guide", "information", "point", "guided", "guide", "switch", "touch", "panel", "key", "display", "mark", "distance", "target", "destination", "point", "azimuth", "target", "destination", "point", "running", "direction", "target", "destination", "point", "displayed"], "section": [6], "subsection": [106, 113], "group": [573, 519], "subgroup": [6605, 7177], "labels": [6, 115, 122, 710, 656, 7403, 7975]}
{"id": "5982386", "title": ["image", "boundary", "correction", "fractal", "processing"], "abstract": ["part", "image", "boundary", "target", "boundary", "portion", "processed", "subjected", "fractal", "processing", "procedure", "give", "corrected", "image", "boundary", "cycle", "fractal", "processing", "magnifies", "target", "boundary", "portion", "time", "target", "boundary", "portion", "contracted", "integer", "le", "prior", "fractal", "processing", "fractal", "processing", "recursively", "executed", "time", "contracted", "target", "boundary", "portion"], "section": [6], "subsection": [111], "group": [565], "subgroup": [7107, 7113, 7114], "labels": [6, 120, 702, 7905, 7911, 7912]}
{"id": "5982393", "title": ["arrangement", "image", "processor"], "abstract": ["present", "invention", "relates", "parallel", "processor", "number", "processor", "element", "type", "integrated", "semiconductor", "chip", "processor", "type", "image", "signal", "processing", "information", "stored", "processor", "element", "device", "unit", "block", "processor", "element", "characterized", "unit", "block", "comprises", "incrementing", "unit", "designed", "add", "signal", "supplied", "unit", "block", "signal", "originates", "incrementing", "unit", "respective", "unit", "closest", "preceding", "unit", "block", "direction", "processor", "element", "matrix", "unit", "block", "logical", "unit", "designed", "perform", "boolean", "logic", "operation", "signal", "received", "incrementing", "unit", "unit", "block"], "section": [6], "subsection": [111], "group": [558, 565], "subgroup": [7099, 7037], "labels": [6, 120, 695, 702, 7897, 7835]}
{"id": "5982457", "title": ["radio", "receiver", "detecting", "digital", "analog", "television", "radio-frequency", "signal", "single", "detector"], "abstract": ["radio", "receiver", "receiving", "dtv", "signal", "accordance", "advanced", "television", "system", "committee", "atsc", "standard", "analog", "tv", "accordance", "national", "television", "sub-committee", "ntsc", "standard", "single", "detector", "type", "signal", "single", "detector", "supply", "output", "signal", "intermediate-frequency", "amplifier", "chain", "tv", "signal", "intermediate-frequency", "amplifier", "chain", "analog", "tv", "signal", "response", "amplifier", "chain", "dtv", "signal", "synchrodyned", "baseband", "supplied", "symbol", "decoding", "circuitry", "automatic", "gain", "control", "circuitry", "develop", "agc", "amplifier", "stage", "amplifier", "chain", "dtv", "signal", "received", "response", "amplifier", "chain", "analog", "tv", "signal", "supplied", "video", "detector", "automatic", "gain", "control", "circuitry", "develops", "agc", "amplifier", "stage", "amplifier", "chain", "composite", "video", "signal", "reproduced", "video", "detector", "analog", "tv", "signal", "received", "radio", "receiver", "sound", "carrier", "ntsc", "signal", "ha", "separate", "intermediate-frequency", "amplifier", "chain", "absence", "mhz", "intercarrier", "sound", "detected", "dtv", "signal", "received", "automatically", "fine", "tune", "detector", "response", "pilot", "carrier", "obtain", "delayed", "agc", "radio-frequency", "amplifier", "agc", "circuitry", "presence", "intercarrier", "sound", "detected", "analog", "tv", "signal", "received", "automatically", "fine", "tune", "detector", "response", "video", "carrier", "obtain", "delayed", "agc", "radio-frequency", "amplifier", "agc", "circuitry"], "section": [7], "subsection": [123, 122], "group": [629, 639], "subgroup": [7827, 7949], "labels": [7, 132, 131, 766, 776, 8625, 8747]}
{"id": "5982518", "title": ["optical", "add-drop", "multiplexer", "compatible", "dense", "wdm", "optical", "communication", "system"], "abstract": ["present", "invention", "add-drop", "multiplexer", "compatible", "dense", "wavelength", "division", "multiplexed", "wdm", "system", "large", "number", "optical", "channel", "add-drop", "multiplexer", "employ", "set", "bragg", "grating", "separated", "optical", "isolator", "reliably", "add", "drop", "optical", "channel", "crosstalk", "bragg", "grating", "set", "optical", "isolator", "interposed", "optical", "coupler", "optical", "channel", "dropped", "wdm", "optical", "signal", "reflected", "set", "bragg", "grating", "exit", "add-drop", "multiplexer", "coupler", "optical", "channel", "added", "wdm", "optical", "signal", "enter", "add-drop", "multiplexer", "optical", "coupler"], "section": [6, 7], "subsection": [123, 107], "group": [635, 536], "subgroup": [6834, 7877], "labels": [6, 7, 132, 116, 772, 673, 7632, 8675]}
{"id": "5982653", "title": ["add-on", "intermixed", "pin", "connection"], "abstract": ["substrate", "number", "memory", "chip", "standard", "arrangement", "trace", "data", "address", "line", "intermixed", "re-routed", "connect", "memory", "chip", "add-on", "card", "module", "processor", "sram", "card", "connection", "processor", "pin", "sram", "pin", "intermixed", "memory", "add-on", "card", "module", "line", "module", "connector", "memory", "chip", "pin", "intermixed", "bit", "addressed", "event", "chip", "transparent", "user", "re-routing", "ha", "occurred", "re-routing", "simplify", "trace", "layout", "significantly", "eliminating", "required", "cross-overs"], "section": [6], "subsection": [116], "group": [588], "subgroup": [7319], "labels": [6, 125, 725, 8117]}
{"id": "5982822", "title": ["viterbi", "decoder"], "abstract": ["viterbi", "decoder", "performs", "viterbi", "decoding", "high", "speed", "low", "power", "consumption", "memory", "random", "access", "memory", "path", "selection", "information", "storage", "unit", "adder-comparator-selector", "ac", "processing", "unit", "time-divisionally", "perform", "ac", "processing", "odd", "number", "state", "based", "branch", "metric", "branch", "metric", "computing", "unit", "path", "metric", "previous", "period", "produce", "path", "selection", "information", "state", "path", "selection", "information", "storage", "collected", "temporary", "storage", "circuit", "written", "path", "selection", "information", "storage", "unit", "path", "selection", "information", "storage", "unit", "past", "path", "selection", "information", "read", "time", "write", "time", "path", "selection", "information", "path", "selection", "information", "maximum", "likelihood", "state", "path", "selection", "information", "path", "selection", "information", "storage", "unit", "read", "time", "ac", "processing", "performed", "state"], "section": [7], "subsection": [122], "group": [632], "subgroup": [7850], "labels": [7, 131, 769, 8648]}
{"id": "5982895", "title": ["finite", "field", "inverse", "circuit", "elliptic", "curve", "processor"], "abstract": ["finite", "field", "inverse", "circuit", "elliptic", "curve", "processor", "finite", "field", "inverse", "circuit", "comprises", "control", "circuit", "data", "circuit", "data", "circuit", "comprises", "data", "multiplexer", "coupling", "content", "register", "finite", "field", "arithmetic", "logic", "unit", "plurality", "bit", "representing", "finite", "field", "element", "inverted", "initially", "loaded", "register", "control", "circuit", "comprises", "shift", "register", "suitable", "storing", "plurality", "bit", "representing", "size", "finite", "field", "element", "inverted", "counter", "detection", "circuitry", "provided", "coupled", "shift", "register", "decrement", "shift", "detect", "content", "shift", "register", "generates", "control", "signal", "connected", "control", "signal", "input", "multiplexer", "data", "circuit", "order", "series", "finite", "field", "operation", "performed", "content", "register", "compute", "inverse", "plurality", "bit", "representing", "finite", "field", "element"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7060], "labels": [6, 120, 695, 7858]}
{"id": "5982899", "title": ["method", "verifying", "configuration", "computer", "system"], "abstract": ["method", "verification", "configuration", "data", "expressive", "configuration", "computer", "system", "computer", "system", "configuration", "data", "stored", "includes", "identifier", "uniquely", "identifying", "computer", "system", "copy", "stored", "configuration", "data", "encoded", "encoding", "method", "identifier", "encoded", "configuration", "data", "encrypted", "encryption", "method", "private", "key", "subsequently", "encrypted", "configuration", "data", "decrypted", "decryption", "method", "public", "key", "producing", "decrypted", "result", "decrypted", "result", "decoded", "identifier", "compared", "stored", "configuration", "data", "alternatively", "stored", "configuration", "data", "encoded", "identifier", "compared", "decrypted", "result"], "section": [6], "subsection": [112, 111], "group": [558, 569], "subgroup": [7042, 7148, 7057], "labels": [6, 121, 120, 695, 706, 7840, 7946, 7855]}
{"id": "5983632", "title": ["exhaust", "emission", "control", "apparatus", "general-purpose", "internal", "combustion", "engine"], "abstract": ["exhaust", "emission", "control", "apparatus", "general-purpose", "internal", "combustion", "engine", "comprises", "exhaust", "passage", "allowing", "passage", "exhaust", "gas", "therethrough", "ternary", "catalyst", "air", "pump", "supplying", "secondary", "air", "exhaust", "passage", "air", "pump", "driven", "rotation", "camshaft", "cam", "opening", "closing", "exhaust", "intake", "valve", "internal", "combustion", "engine", "drive", "air", "pump", "effected", "pump", "rocker", "arm", "disposed", "cam", "pump", "shaft", "air", "pump"], "section": [8, 5], "subsection": [125, 88], "group": [421, 656], "subgroup": [8095, 5369], "labels": [8, 5, 134, 97, 558, 793, 8893, 6167]}
{"id": "5983681", "title": ["lock", "device", "automatic", "shift", "lever"], "abstract": ["improved", "lock", "device", "automatic", "shift", "lever", "car", "lock", "device", "ha", "theft-proof", "effect", "broken", "limiting", "limiting", "rod", "receiving", "hole", "knob", "rear", "front", "hole", "provided", "protruding", "portion", "front", "end", "operating", "rod", "position", "position", "periphery", "end", "push", "button", "receive", "limiting", "rod", "surrounded", "spring", "push", "button", "pressed", "released", "end", "limiting", "rod", "abuts", "plateform", "receiving", "hole", "end", "freely", "slide", "fro", "rear", "front", "hole", "locking", "lever", "lock", "rotated", "render", "stop", "piece", "provided", "push", "button", "protruding", "portion", "rotate", "position", "rear", "front", "hole", "limit", "reduce", "stroke", "limiting", "rod", "range", "plateform", "stop", "piece", "object", "locking", "attained"], "section": [8, 1], "subsection": [127, 41], "group": [202, 660], "subgroup": [8360, 2534], "labels": [8, 1, 136, 50, 339, 797, 9158, 3332]}
{"id": "5983841", "title": ["heat", "exchanger"], "abstract": ["heat", "exchanger", "shape", "pot", "frontal", "connector", "burner", "lateral", "water", "inlet", "base", "water", "outlet", "region", "frontal", "connector", "water", "flow", "base", "jacket", "pot", "operation", "invention", "proposes", "provision", "base", "pot", "water", "conveying", "section", "form", "sickle-shaped", "water", "guide", "channel", "barrier", "ensure", "directional", "water", "flow", "substantially", "covering", "surface", "base", "pot", "order", "ensure", "uniform", "temperature", "distribution", "pot", "base", "formation", "steam", "bubble"], "section": [5], "subsection": [99], "group": [490], "subgroup": [6268, 6276], "labels": [5, 108, 627, 7066, 7074]}
{"id": "5983891", "title": ["artificial", "ventilation", "method", "controlling", "carbon", "dioxide", "rebreathing"], "abstract": ["method", "providing", "assisted", "ventilation", "avoids", "hypoxia", "hypocapnia", "disclosed", "predetermined", "dead", "space", "assisted", "ventilation", "system", "provided", "external", "patient", "method", "create", "normocapnia", "moderate", "hypercapnia", "causing", "hypoxia", "assisted", "ventilation", "preferably", "hypoxia", "avoided", "inducing", "maintaining", "arterial", "carbon", "dioxide", "tension", "mmhg", "dead", "space", "volume", "small", "ml", "exceeding", "ml", "utilized", "method", "improved", "proximal", "terminal", "tubular", "attachment", "coaxial", "filter", "disclosed", "safer", "le", "expensive", "prior", "art", "unilimb", "assisted", "ventilation", "system", "device", "present", "invention", "reduce", "medical", "waste", "comparison", "prior", "art", "assisted", "ventilation", "system", "interface", "provided", "incorporates", "proximal", "terminal", "functional", "device", "tubular", "respiratory", "conduit", "predetermined", "adjustable", "dead", "space", "volume", "connected"], "section": [8, 0], "subsection": [12, 127], "group": [70, 659], "subgroup": [8299, 8124, 877, 893], "labels": [8, 0, 21, 136, 207, 796, 9097, 8922, 1675, 1691]}
{"id": "5984022", "title": ["automatic", "shaft", "lock"], "abstract": ["automatic", "shaft", "lock", "incorporated", "transmission", "drive", "component", "power", "driving", "tool", "type", "commonly", "tighten", "loosen", "threaded", "fastener", "automatic", "shaft", "lock", "operates", "prevent", "externally-applied", "rotational", "back-force", "back-torque", "result", "tool", "manually", "tighten", "loosen", "fastener", "transmitted", "drive", "component", "tool", "motor", "armature", "shaft", "shaft", "lock", "effectively", "reduces", "amount", "back-torque", "functioning", "automatically", "rotational", "direction", "due", "disposed", "intermediate", "location", "drive", "train", "intermediate", "gear", "enmeshed", "driving", "rotation", "tool", "armature", "shaft", "output", "gear", "enmeshed", "driving", "relationship", "tool", "output", "shaft"], "section": [1], "subsection": [28], "group": [133, 130], "subgroup": [1768, 1800], "labels": [1, 37, 270, 267, 2566, 2598]}
{"id": "5984065", "title": ["lockup", "damper", "torque", "converter"], "abstract": ["lockup", "damper", "ha", "drive", "plate", "driven", "plate", "coil", "spring", "disposed", "plate", "coil", "spring", "disposed", "plate", "coil", "spring", "intermediate", "plate", "support", "portion", "intermediate", "limit", "portion", "intermediate", "support", "portion", "disposed", "coil", "spring", "supporting", "spring", "circumferential", "direction", "intermediate", "limit", "portion", "extend", "interior", "coil", "spring", "intermediate", "support", "portion", "limiting", "radially", "outward", "movement", "coil", "spring"], "section": [5], "subsection": [94], "group": [452], "subgroup": [5870, 5893], "labels": [5, 103, 589, 6668, 6691]}
{"id": "5984123", "title": ["container", "screw-threaded", "captive", "cap"], "abstract": ["packaging", "container", "container", "body", "lid", "unit", "undetachably", "mounted", "container", "body", "container", "body", "ha", "neck", "portion", "provided", "opening", "external", "thread", "cut", "outer", "periphery", "neck", "portion", "lid", "mounting", "portion", "provided", "external", "thread", "lid", "unit", "ha", "lid", "body", "fitting", "member", "lid", "body", "provided", "internal", "thread", "engageable", "external", "thread", "container", "body", "ha", "function", "hermetically", "sealing", "opening", "container", "body", "fitting", "member", "rotatably", "fitted", "lid", "mounting", "portion", "container", "body", "vertical", "movement", "fitting", "member", "restricted", "predetermined", "range", "fitting", "member", "held", "undetachable", "lid", "mounting", "portion", "collar", "container", "body", "lid", "body", "fitting", "member", "connected", "connecting", "member", "manner", "lower", "surface", "lid", "body", "rest", "separate", "upper", "surface", "fitting", "member"], "section": [1], "subsection": [46], "group": [237], "subgroup": [3021], "labels": [1, 55, 374, 3819]}
{"id": "5984498", "title": ["device", "controller", "intracontroller", "communication", "capability", "conveying", "system", "controller", "controlling", "conveying", "section", "method", "related", "thereto"], "abstract": ["featured", "device", "controller", "system", "multiplicity", "controller", "conveying", "system", "method", "controlling", "multiplicity", "device", "controller", "controller", "includes", "plurality", "bi-directional", "communication", "port", "processor", "process", "information", "output", "output", "control", "device", "application", "program", "execution", "processor", "includes", "instruction", "criterion", "processing", "information", "providing", "processor", "output", "specifically", "application", "program", "includes", "instruction", "criterion", "communicating", "information", "controller", "instruction", "criterion", "processing", "information", "received", "controller", "instruction", "criterion", "modifying", "operation", "device", "responsive", "communicated", "information", "conveying", "system", "multiplicity", "conveying", "section", "controller", "provided", "section", "preferably", "application", "program", "conveying", "system", "controller", "includes", "instruction", "criterion", "needed", "operate", "number", "conveying", "section", "type", "conveying", "system", "controller", "includes", "memory", "storing", "parameter", "conveying", "system", "section", "operates", "desired", "fashion"], "section": [6, 8], "subsection": [110, 127], "group": [660, 551], "subgroup": [6994, 8347, 6992], "labels": [6, 8, 119, 136, 797, 688, 7792, 9145, 7790]}
{"id": "5984799", "title": ["golf", "club", "swing", "training", "device"], "abstract": ["invention", "soft", "tiny", "golf", "club-shaft", "attachable", "audio", "feel-feedback", "golf", "swing", "tuner", "oz", "weight", "golfer", "swing", "club", "tuner", "soft", "inch", "long", "ulta-thin", "tensilised", "polymeric", "foil", "untwisted", "elevated", "lengthwise", "parallel", "target", "side", "shaft", "twin", "resilient", "plastic", "end-piers", "snap-fitted", "club", "head", "end", "shaft", "foil", "resonates", "keeping", "pace", "club-face", "motion", "golfer", "hears", "motion", "specific", "", "", "", "humming", "buzzing", "clubshaft", "quivering", "signal", "repeat", "swing", "repeat"], "section": [0], "subsection": [14], "group": [77], "subgroup": [1028], "labels": [0, 23, 214, 1826]}
{"id": "5985308", "title": ["process", "producing", "anti-microbial", "effect", "complex", "silver", "ion"], "abstract": ["production", "anti-microbial", "effect", "alcohol", "water", "based", "electrolyte", "achieved", "preparing", "silver", "material", "form", "complex", "ion", "ag", "", "ag", "", "ag", "", "produce", "anti-microbial", "effect", "greater", "produced", "equivalent", "amount", "silver", "ag", "", "exemplary", "complex", "silver", "ion", "produced", "include", "ag", "cn", "-", "agcn", "", "aq", "ion", "pair", "ag", "nh", "", "agcl", "-", "ag", "-", "ag", "-", "ag", "-", "ag", "-", "silver", "material", "prepared", "powder", "solution", "suspension", "complex", "silver", "ion", "silver", "material", "prepared", "coating", "foil", "powder", "fine", "grain", "nanocrystalline", "powder", "formed", "atomic", "disorder", "provide", "sustained", "release", "complex", "silver", "ion"], "section": [2, 8, 0, 7], "subsection": [0, 120, 68, 12, 127], "group": [659, 10, 334, 69, 604, 61], "subgroup": [705, 861, 198, 870, 867, 857, 7468, 4548, 869, 8337], "labels": [2, 8, 0, 7, 9, 129, 77, 21, 136, 796, 147, 471, 206, 741, 198, 1503, 1659, 996, 1668, 1665, 1655, 8266, 5346, 1667, 9135]}
{"id": "5985425", "title": ["ink-jet", "recording", "film", "improved", "ink", "fixing", "comprising", "combination", "silica", "powder"], "abstract": ["ink-jet", "recording", "film", "capable", "exhibiting", "excellent", "ink", "fixing", "behavior", "ink-jet", "printing", "water-base", "ink", "good", "water", "resistance", "recording", "layer", "ha", "double-layered", "structure", "formed", "surface", "plastic", "substrate", "film", "consisting", "ink-receptive", "layer", "comprising", "water-soluble", "resin", "polyvinyl", "alcohol", "polyvinyl", "acetal", "polyvinyl", "pyrrolidone", "surface-roughening", "agent", "combination", "silica", "powder", "distinguishable", "low", "high", "oil", "absorption", "weight", "proportion", "crosslinking", "agent", "water-soluble", "resin", "overcoating", "layer", "dot-profile", "control", "consisting", "acrylic", "resin", "quaternary", "ammonium", "salt", "type"], "section": [8, 1], "subsection": [127, 37], "group": [660, 174], "subgroup": [8354, 2272], "labels": [8, 1, 136, 46, 797, 311, 9152, 3070]}
{"id": "5985888", "title": ["camptothecin", "compound", "combined", "topoisomarase", "inhibition", "dna", "alkylation", "property"], "abstract": ["camptothecin", "compound", "--", "ch", "--", "group", "effective", "anti-tumor", "compound", "compound", "inhibit", "enzyme", "topoisomerase", "dna", "topoisomerase", "i-dna", "complex"], "section": [2], "subsection": [58], "group": [277], "subgroup": [3653], "labels": [2, 67, 414, 4451]}
{"id": "5985966", "title": ["aqueous", "emulsion", "fluorine-containing", "polymer"], "abstract": ["aqueous", "emulsion", "fluorine-containing", "polymer", "present", "invention", "emulsion", "stabilizer", "represented", "formula", "equ", "--", "ph", "--", "--", "ch", "ch", "--", "ch", "ch", "--", "ph", "phenyl", "radical", "alkyl", "radical", "carbon", "atom", "number", "na", "nh", "resulting", "emulsion", "ha", "excellent", "mechanical", "stability", "thermal", "stability", "decreased", "possibility", "causing", "ground", "water", "contamination"], "section": [2], "subsection": [60, 59], "group": [293, 289, 290], "subgroup": [3964, 3942, 4050, 3965], "labels": [2, 69, 68, 430, 426, 427, 4762, 4740, 4848, 4763]}
{"id": "5986042", "title": ["cross-linked", "polymer"], "abstract": ["cross-linked", "polymer", "molecule", "recurring", "unit", "represented", "formula", "biodegradability", "high", "water-absorbency", "pendant", "group", "functional", "group", "selected", "group", "consisting", "acidic", "group", "salt", "thereof", "glycino", "group", "salt", "thereof", "cationic", "group", "betaine", "group", "nh", "nr", "", "", "alkyl", "aralkyl", "aryl", "group"], "section": [2], "subsection": [59], "group": [286], "subgroup": [3856, 3854], "labels": [2, 68, 423, 4654, 4652]}
{"id": "5986058", "title": ["polynucleotide", "encoding", "growth", "differentiation", "protein", "encoded"], "abstract": ["growth", "differentiation", "polypeptide", "polynucleotide", "sequence", "provided"], "section": [2, 0], "subsection": [58, 12], "group": [282, 68], "subgroup": [843, 3713], "labels": [2, 0, 67, 21, 419, 205, 1641, 4511]}
{"id": "5986166", "title": ["absorbent", "product", "including", "absorbent", "layer", "treated", "surface", "active", "agent"], "abstract": ["absorbent", "product", "comprising", "liquid", "permeable", "surface", "sheet", "liquid", "nonpermeable", "back", "sheet", "absorbent", "layer", "located", "therebetween", "absorbent", "layer", "comprises", "water", "nonswellable", "synthetic", "fiber", "optionally", "cellulose", "fiber", "water-absorbent", "resin", "weight", "ratio", "percentage", "content", "based", "weight", "sum", "weight", "absorbent", "layer", "treated", "polyoxyalkylene-modified", "silicone", "surface", "active", "agent", "nonsilicone", "surface", "active", "agent", "hlb", "absorbent", "product", "present", "invention", "exhibit", "excellent", "shape", "retention", "moist", "state", "good", "permeability", "diffusibility", "absorbed", "liquid", "provide", "excellent", "surface", "dryness", "reduced", "leakage", "comfortably", "long", "time", "effectively", "applied", "disposable", "diaper", "sanitary", "napkin", "incontinence", "pad"], "section": [2, 0, 1], "subsection": [12, 60, 35], "group": [69, 64, 298, 164], "subgroup": [2123, 4160, 856, 751, 2131, 2197, 2179, 2188], "labels": [2, 0, 1, 21, 69, 44, 206, 201, 435, 301, 2921, 4958, 1654, 1549, 2929, 2995, 2977, 2986]}
{"id": "5986341", "title": ["semiconductor", "device"], "abstract": ["condenser", "coil", "thin-thickness", "integrated", "circuit", "upper", "cover", "sheet", "lower", "cover", "sheet", "adhesive", "filled", "space", "card", "fabricated", "condenser", "coil", "thin-thickness", "integrated", "circuit", "extremely", "thin", "resulting", "semiconductor", "device", "highly", "resistant", "bending", "highly", "reliable", "low", "cost"], "section": [6, 7], "subsection": [120, 111], "group": [607, 561], "subgroup": [7560, 7550, 7555, 7071, 7554], "labels": [6, 7, 129, 120, 744, 698, 8358, 8348, 8353, 7869, 8352]}
{"id": "5986400", "title": ["electroluminescent", "device", "comprising", "transparent", "structured", "electrode", "layer", "made", "conductive", "polymer"], "abstract": ["description", "electroluminescent", "el", "device", "composed", "polymeric", "led", "comprising", "active", "layer", "conjugated", "polymer", "transparent", "polymeric", "electrode", "layer", "electroconductive", "area", "electrode", "active", "layer", "electrode", "layer", "manufactured", "simple", "manner", "spin", "coating", "electrode", "layer", "structured", "conductive", "electrode", "exposure", "uv", "light", "electrode", "jointly", "form", "matrix", "led", "display", "flexible", "substrate", "bendable", "el", "device", "obtained"], "section": [7], "subsection": [120], "group": [607], "subgroup": [7572, 7557], "labels": [7, 129, 744, 8370, 8355]}
{"id": "5986457", "title": ["method", "measuring", "currency", "limpness"], "abstract": ["measuring", "limpness", "note", "separate", "worn", "note", "circulation", "method", "disclosed", "combination", "test", "limpness", "method", "measure", "note", "ability", "reflect", "light", "transmit", "light", "method", "measure", "response", "note", "acoustic", "wave", "method", "measure", "note", "deflection", "pressure", "force", "method", "measure", "dielectric", "note", "plate", "capacitor", "final", "method", "involves", "measuring", "thermal", "conductivity", "note", "case", "limp", "note", "produce", "distinguishable", "result", "stiff", "note"], "section": [6], "subsection": [106, 112], "group": [568, 528], "subgroup": [6726, 6744, 6738, 7139, 6742], "labels": [6, 115, 121, 705, 665, 7524, 7542, 7536, 7937, 7540]}
{"id": "5986510", "title": ["method", "apparatus", "amplifying", "input", "signal", "multiple", "mode", "resolution"], "abstract": ["output", "array", "input", "signal", "amplified", "amplification", "section", "sampled", "multiplexed", "analog", "bus", "amplifier", "amplification", "section", "segregated", "group", "amplifier", "mode", "binning", "signal", "amplifier", "group", "electrically", "isolated", "function", "independently", "provide", "high", "resolution", "output", "signal", "mode", "amplifier", "group", "operate", "single", "unified", "amplifier", "average", "input", "group", "provide", "single", "output", "mode", "operation", "readout", "speed", "improved", "increasing", "signal-to-noise", "ratio", "input", "signal", "relative", "mode", "operation"], "section": [7], "subsection": [123], "group": [639], "subgroup": [7949], "labels": [7, 132, 776, 8747]}
{"id": "5986538", "title": ["n-bit", "comparator"], "abstract": ["n-bit", "comparator", "compare", "number", "consisting", "bit", "includes", "one-bit", "comparing", "circuit", "generating", "output", "level", "output", "level", "complementary", "level", "bit", "ai", "ltoreq", "ltoreq", "number", "equal", "bit", "bi", "ltoreq", "ltoreq", "number", "generating", "output", "level", "output", "level", "bit", "ai", "greater", "bit", "bi", "generating", "output", "level", "output", "level", "bit", "ai", "le", "bit", "bi", "final", "comparing", "circuit", "receiving", "output", "one-bit", "comparing", "circuit", "generating", "final", "comparative", "result", "number", "comparative", "result", "lower", "place", "upper", "place", "number", "equal"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7060], "labels": [6, 120, 695, 7858]}
{"id": "5986553", "title": ["flow", "meter", "measure", "solid", "particulate", "flow"], "abstract": ["non-contact", "solid", "flow", "meter", "measuring", "solid", "particulate", "flow", "comprised", "flow", "tube", "sensor", "indicator", "product", "enters", "flow", "tube", "end", "flow", "downward", "gravity", "past", "sensor", "exit", "flow", "tube", "bottom", "sensor", "sensor", "tube", "angle", "flow", "particulate", "solid", "product", "pas", "sensor", "signal", "low", "microwave", "energy", "energy", "contacting", "particulate", "undergoes", "doppler", "shift", "detected", "sensor", "width", "sensor", "beam", "ha", "diameter", "flow", "tube", "cover", "entire", "cross-sectional", "area", "flow", "tube", "manner", "particulate", "material", "flowing", "flow", "tube", "contact", "beam", "reflected", "instrument", "calibrated", "algorithm", "determined", "calibration", "indicator", "provide", "fit", "function", "output", "range", "indicator"], "section": [6], "subsection": [106], "group": [521], "subgroup": [6624], "labels": [6, 115, 658, 7422]}
{"id": "5986619", "title": ["multi-band", "concentric", "helical", "antenna"], "abstract": ["multi-band", "concentric", "helical", "antenna", "operating", "conical", "mode", "general", "satellite", "communication", "disclosed", "higher", "frequency", "helix", "concentrically", "inside", "lower", "frequency", "embodiment", "helix", "ha", "helical", "element", "outer", "helix", "fed", "frequency", "helix", "fed", "frequency", "frequency", "greater", "frequency", "helix", "polarization", "pitch", "diameter", "length", "al", "al", "helix", "chosen", "antenna", "radiates", "approximately", "equal", "flux", "point", "far-field", "plane", "alternatively", "helix", "concentrically", "outer", "helix", "space", "application", "helix", "air", "wound", "spring", "compressed", "flat", "prior", "launch", "deployed", "fall", "length", "flight", "embodiment", "feature", "helically-wound", "tape", "wound", "inflatable", "non-conducting", "support", "concentrically", "positioned", "deployed", "space", "form", "concentric", "helix"], "section": [8, 7], "subsection": [123, 120, 127], "group": [610, 659, 633], "subgroup": [7869, 7596, 8218, 7595], "labels": [8, 7, 132, 129, 136, 747, 796, 770, 8667, 8394, 9016, 8393]}
{"id": "5986654", "title": ["system", "method", "rendering", "on-screen", "iconic", "button", "dynamic", "textual", "link"], "abstract": ["display", "button", "web", "page", "integrating", "graphic", "pictorial", "image", "character", "based", "textual", "information", "link", "single", "iconic", "button", "providing", "graphic", "image", "display", "button", "present", "invention", "advantage", "graphic", "icon", "speed", "location", "user", "recognition", "increased", "meaning", "providing", "character", "based", "dynamic", "textual", "link", "present", "invention", "iconic", "button", "information", "readily", "translated", "language", "italian", "english", "french", "german", "requiring", "image", "redrawn", "complex", "time", "consuming", "artist", "drawing", "tool", "translation", "accomplished", "automatic", "word", "phrase", "conversion", "preferably", "display", "button", "present", "invention", "represented", "table", "structure", "html", "table", "structure", "end", "cell", "display", "graphic", "image", "slightly", "shorter", "text", "cell", "inserted", "display", "character", "based", "text", "filling", "height", "difference", "text", "cell", "end", "cell", "thin", "horizontal", "row", "cell", "colored", "mach", "end", "cell", "background", "color", "cell", "selected", "create", "visual", "image", "complete", "display", "button", "graphic", "image", "textual", "information", "display", "button", "selected", "user", "obtain", "display", "information", "advance", "web", "page", "website", "link", "present", "invention", "subroutine", "structure", "created", "language", "called", "javascript", "reducing", "amount", "program", "code", "required", "generate", "multiple", "display", "button", "single", "web", "page"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7058], "labels": [6, 120, 695, 7856]}
{"id": "5987000", "title": ["disc", "package"], "abstract": ["disc", "package", "loaded", "disc", "device", "house", "plurality", "tray", "disc", "type", "installed", "respective", "tray", "tray", "provided", "hook", "identification", "hole", "indicative", "type", "information", "disc", "ejector", "lever", "ejecting", "tray", "provided", "sensor", "sensing", "information", "identification", "hole", "disc", "package", "loaded", "identification", "disc", "tray", "causing", "ejector", "lever", "face", "sequentially", "hook", "tray"], "section": [6], "subsection": [116], "group": [587], "subgroup": [7292, 7283], "labels": [6, 125, 724, 8090, 8081]}
{"id": "5987041", "title": ["laser", "apparatus", "method", "emission", "laser", "beam"], "abstract": ["laser", "apparatus", "capable", "emitting", "laser", "beam", "wavelength", "conversion", "intensity", "modulation", "comprises", "fundamental", "wave", "resonance", "comprising", "light", "emitting", "part", "optical", "resonator", "comprising", "mirror", "sandwiching", "light", "emitting", "part", "capable", "laser", "resonating", "modulation-conversion", "set", "inside", "optical", "resonator", "light", "emitting", "part", "semiconductor", "light", "emitting", "element", "laser", "medium", "modulation-conversion", "converting", "nonlinear", "optical", "effect", "fundamental", "laser", "resonance", "wavelength", "light", "phase", "modulating", "light", "electro-optical", "effect", "modulation", "part", "modulation-conversion", "comprising", "electrode", "application", "modulation", "voltage", "laser", "apparatus", "present", "invention", "compact", "ha", "simple", "structure", "compared", "conventional", "capable", "wavelength", "conversion", "fundamental", "wave", "beam", "shg", "intensity", "modulation", "shg", "laser", "beam", "high", "modulation", "degree", "low", "modulation", "voltage", "emission", "light", "method", "thereof", "simple", "fulfill", "laser", "apparatus", "serf", "light", "source", "optical", "communication"], "section": [6, 7], "subsection": [120, 107], "group": [612, 538], "subgroup": [7634, 6848], "labels": [6, 7, 129, 116, 749, 675, 8432, 7646]}
{"id": "5987687", "title": ["handle", "bristle", "holding", "portion", "brush"], "abstract": ["handle", "bristle", "holding", "portion", "brush", "handle", "ergonomically", "shaped", "fit", "user", "hand", "handle", "configured", "longitudinal", "cylinder", "resilient", "increase", "user", "comfort", "handle", "sanitized", "brush", "client", "hook", "loop", "fastener", "connect", "handle", "bristle", "holding", "portion", "handle", "bristle", "holding", "portion", "readily", "separable", "rejoinable", "allowing", "handle", "readily", "transferable", "bristle", "holding", "portion", "alternately", "handle", "fixedly", "formed", "bristle", "holding", "portion"], "section": [0], "subsection": [10], "group": [50], "subgroup": [517], "labels": [0, 19, 187, 1315]}
{"id": "5987959", "title": ["automated", "retention", "time", "locking"], "abstract": ["invention", "method", "automated", "matching", "retention", "time", "obtained", "chromatographic", "method", "defined", "set", "column", "parameter", "operating", "parameter", "retention", "time", "obtained", "chromatographic", "method", "set", "column", "parameter", "retention", "time", "component", "separated", "accordance", "chromatographic", "method", "matched", "retention", "time", "set", "chromatographic", "method", "procedure", "adjust", "head", "pressure", "compensate", "difference", "versus", "original", "column", "carrier", "gas", "column", "outlet", "pressure", "method"], "section": [6], "subsection": [106], "group": [528], "subgroup": [6746], "labels": [6, 115, 665, 7544]}
{"id": "5987983", "title": ["method", "apparatus", "measuring", "acceleration"], "abstract": ["method", "apparatus", "measuring", "acceleration", "moving", "object", "body", "capable", "transmitting", "pulse", "energy", "applied", "moving", "object", "carried", "move", "therewith", "pulse", "energy", "transmitted", "forward", "direction", "location", "body", "location", "body", "distance", "location", "transmitted", "pulse", "detected", "location", "transit", "time", "pulse", "location", "location", "measured", "measured", "transit", "time", "distance", "location", "utilized", "determine", "acceleration", "body", "moving", "object"], "section": [6], "subsection": [106], "group": [529], "subgroup": [6756], "labels": [6, 115, 666, 7554]}
{"id": "5987995", "title": ["fiber", "optic", "pressure", "catheter"], "abstract": ["fiber", "optic", "pressure", "catheter", "includes", "light", "source", "optical", "fiber", "coupled", "receive", "light", "light", "source", "sensor", "head", "optically", "coupled", "optical", "fiber", "sensor", "head", "ha", "housing", "defining", "chamber", "coupled", "end", "optical", "fiber", "opposite", "light", "source", "housing", "ha", "opening", "enclosed", "membrane", "membrane", "responsive", "pressure", "differential", "chamber", "sensor", "head", "resilient", "ribbon", "coupled", "chamber", "ha", "end", "fixedly", "coupled", "support", "ribbon", "ha", "end", "movable", "front", "optical", "fiber", "ribbon", "mounted", "middle", "portion", "ribbon", "touch", "membrane", "biased", "membrane", "response", "pressure", "differential", "amount", "light", "reflected", "back", "optical", "fiber", "based", "amount", "pressure", "membrane", "detection", "system", "optically", "coupled", "optical", "fiber", "determines", "pressure", "sensor", "head", "contrast", "spectral", "fringe", "light", "created", "optical", "coating", "end", "optical", "fiber", "light", "reflecting", "ribbon"], "section": [6, 0], "subsection": [106, 12], "group": [526, 61], "subgroup": [722, 6694], "labels": [6, 0, 115, 21, 663, 198, 1520, 7492]}
{"id": "5988352", "title": ["device", "turning", "editorial", "product", "packaging", "line"], "abstract": ["device", "turning", "editorial", "product", "packaging", "line", "includes", "pusher", "conveyor", "feeder", "product", "packaged", "plurality", "feeder", "sheet", "insert", "product", "arranged", "side", "side", "direction", "essentially", "perpendicular", "pusher", "conveyor", "device", "ha", "base", "mounted", "unit", "gripping", "rotating", "overturning", "degree", "guiding", "product", "caused", "advance", "pusher", "conveyor", "base", "ha", "size", "identical", "insert", "feeder", "assist", "position", "line", "drive", "provided", "unit"], "section": [1], "subsection": [46], "group": [240], "subgroup": [3100, 3104, 3092], "labels": [1, 55, 377, 3898, 3902, 3890]}
{"id": "5988759", "title": ["belt", "integral", "seat", "motor", "vehicle", "back", "rest", "neck", "rest", "device", "safety", "belt", "guidance"], "abstract": ["structure", "relates", "belt", "integral", "seat", "motor", "vehicle", "back", "rest", "ha", "back", "rest", "frame", "carrier", "neck", "rest", "device", "safety", "belt", "guidance", "arranged", "top", "device", "safety", "belt", "guidance", "attached", "carrier", "carrier", "located", "device", "safety", "belt", "guidance", "neck", "rest"], "section": [1], "subsection": [41], "group": [202, 199], "subgroup": [2531, 2500, 2528], "labels": [1, 50, 339, 336, 3329, 3298, 3326]}
{"id": "5988780", "title": ["guide", "withdrawal", "drawer"], "abstract": ["pull-out", "guide", "assembly", "includes", "support", "rail", "mounted", "article", "furniture", "pull-out", "rail", "mounted", "drawer", "intermediate", "rail", "positioned", "support", "rail", "pull-out", "rail", "driving", "roller", "mounted", "intermediate", "rail", "run", "running", "flange", "support", "rail", "pull-out", "rail", "locking", "device", "intermediate", "rail", "couple", "intermediate", "rail", "pull-out", "rail", "rear", "portion", "displacement", "movement", "pull-out", "rail", "article", "furniture", "closing", "device", "provided", "rail", "move", "intermediate", "rail", "pull-out", "rail", "coupled", "thereto", "locking", "device", "rearmost", "position", "clearance", "defined", "created", "driving", "roller", "running", "flange", "support", "rail", "prevent", "operation", "driving", "roller", "rear", "portion", "movement", "pull-out", "rail"], "section": [0], "subsection": [11], "group": [52], "subgroup": [541, 572], "labels": [0, 20, 189, 1339, 1370]}
{"id": "5988782", "title": ["ink-jet", "printing", "apparatus"], "abstract": ["ink-jet", "printing", "apparatus", "turning", "power", "source", "printing", "apparatus", "stirring", "operation", "ink", "main", "tank", "performed", "period", "time", "sequent", "printing", "operation", "stirring", "operation", "main", "tank", "performed", "give", "period", "predetermined", "elapsed", "time", "printing", "operation", "long", "period", "performed", "employing", "ink", "water", "insoluble", "dye", "causing", "problem", "admixing", "bubble", "caused", "stirring", "ink", "main", "tank"], "section": [3, 1], "subsection": [37, 77], "group": [364, 171], "subgroup": [4771, 2242, 2251], "labels": [3, 1, 46, 86, 501, 308, 5569, 3040, 3049]}
{"id": "5988807", "title": ["fluorescent", "valve", "jet", "ink"], "abstract": ["fluorescent", "ink", "make", "tagger", "mark", "valve", "jet", "printer", "rate", "envelope", "ink", "penetrates", "paper", "rapid", "rate", "dry", "time", "penetrating", "paper", "degrading", "print", "quality", "penetrating", "agent", "solvent", "system", "isopropyl", "alcohol", "combination", "surfactant", "surfactant", "polyethylene", "glycol", "ether", "polyethylene", "glycol", "ether", "high", "boiling", "point", "low", "vapor", "pressure", "penetrating", "agent", "solvent", "system", "ha", "low", "boiling", "point", "high", "vapor", "pressure", "low", "static", "dynamic", "surface", "tension", "improves", "ink", "rate", "penetration", "paper", "diminishes", "amount", "offset"], "section": [2], "subsection": [60], "group": [293], "subgroup": [4043], "labels": [2, 69, 430, 4841]}
{"id": "5988868", "title": ["drive", "member", "automatic", "paint", "stirring", "equipment"], "abstract": ["improvement", "automatic", "paint", "stirring", "equipment", "disclosed", "type", "rack", "adapted", "removably", "receive", "support", "plurality", "paint", "paint", "includes", "cover", "stirring", "element", "contained", "driven", "member", "positioned", "cover", "mechanically", "connected", "stirring", "element", "driven", "member", "rotatable", "predetermined", "axis", "includes", "upwardly", "extending", "pin", "spaced", "preset", "distance", "drive", "shaft", "rotatably", "mounted", "rack", "rotatably", "driven", "motor", "generally", "vertical", "axis", "drive", "member", "secured", "lower", "end", "shaft", "rotates", "unison", "shaft", "improved", "drive", "member", "includes", "outer", "leg", "central", "leg", "leg", "substantially", "planar", "outer", "leg", "intersect", "central", "leg", "obtuse", "angle", "outer", "leg", "substantially", "parallel", "central", "leg", "dimensioned", "intersection", "outer", "leg", "central", "leg", "spaced", "distance", "substantially", "equal", "distance", "pin", "driven", "member"], "section": [8, 1], "subsection": [127, 15], "group": [87, 659], "subgroup": [1179, 1191, 8226], "labels": [8, 1, 136, 24, 224, 796, 1977, 1989, 9024]}
{"id": "5988874", "title": ["black", "body", "reference", "rta"], "abstract": ["method", "calibrating", "optical", "pyrometer", "external", "reference", "point", "changing", "focus", "optical", "pyrometer", "physically", "moving", "pyrometer", "calibration", "optical", "pyrometer", "accomplished", "modifying", "semiconductor", "operation", "broadly", "speaking", "present", "invention", "contemplates", "apparatus", "calibrating", "optical", "pyrometer", "apparatus", "includes", "optical", "source", "heating", "chamber", "optical", "port", "optical", "pyrometer", "mirror", "optical", "source", "optical", "pyrometer", "positioned", "receive", "light", "ray", "optical", "source", "residing", "inside", "heating", "chamber", "optical", "source", "located", "external", "heating", "chamber", "optical", "source", "serf", "external", "reference", "point", "external", "location", "optical", "source", "calibration", "optical", "pyrometer", "modification", "heating", "chamber", "optical", "source", "residing", "inside", "heating", "chamber", "mirror", "positioned", "heating", "chamber", "optical", "pyrometer", "mirror", "situated", "permit", "optical", "pyrometer", "receive", "light", "ray", "optical", "source"], "section": [6], "subsection": [106], "group": [524], "subgroup": [6665], "labels": [6, 115, 661, 7463]}
{"id": "5988903", "title": ["printer", "printing", "single", "sheet", "endless", "paper", "strip"], "abstract": ["printer", "printing", "single", "sheet", "continuous", "paper", "strip", "printing", "substrate", "plane", "single", "sheet", "led", "printing", "station", "operator", "side", "displaced", "manually", "feed", "table", "printing", "station", "overlap", "continuous", "paper", "strip", "part", "width", "continuous", "paper", "strip", "fed", "printing", "station", "operating", "side", "continuous", "paper", "feed", "channel", "single-sheet", "feed", "channel", "assigned", "driven", "feed", "roller", "pair", "feed", "roller", "mating", "roller", "arranged", "rocker", "pressed", "optionally", "driven", "feed", "roller", "continuous", "paper", "feed", "channel", "single-sheet", "feed", "channel"], "section": [1], "subsection": [37], "group": [171], "subgroup": [2239, 2237], "labels": [1, 46, 308, 3037, 3035]}
{"id": "5989215", "title": ["fibrin", "delivery", "device", "method", "forming", "fibrin", "surface"], "abstract": ["invention", "medical", "device", "delivering", "volumetric", "quantity", "biochemically", "reactive", "fluid", "comprising", "container", "opening", "container", "adapted", "biochemically", "reactive", "fluid", "container", "fluid", "opening", "adjacent", "fluid", "opening", "container", "adapted", "biochemically", "reactive", "fluid", "spray", "unit", "separately", "atomizing", "biochemically", "reactive", "fluid", "aerosol", "energy", "source", "liquid", "energy", "mechanical", "energy", "vibration", "energy", "electric", "energy", "fluid", "pressurizer", "pressurizing", "biochemically", "reactive", "fluid", "delivery", "pressure", "spray", "unit", "surface", "biochemically", "reactive", "fluid", "mix", "surface"], "section": [0], "subsection": [12], "group": [69, 64], "subgroup": [867, 856, 767, 870], "labels": [0, 21, 206, 201, 1665, 1654, 1565, 1668]}
{"id": "5989806", "title": ["immunodissociation", "improving", "immunochemical", "determination", "analyte"], "abstract": ["present", "invention", "relates", "process", "immunochemical", "determination", "analytes", "sample", "immobilized", "specific", "receptor", "exhibit", "interactive", "bioaffinity", "analyte", "specific", "receptor", "likewise", "exhibit", "interactive", "bioaffinity", "analyte", "rule", "labeled", "process", "receptor", "posse", "specific", "binding", "site", "analyte", "added", "resulting", "immune", "complex", "partially", "dissociated", "reassociated", "subsequently", "detected", "embodiment", "receptor", "employed", "addition", "receptor", "receptor", "posse", "affinity", "immobilized", "solid", "phase", "resulting", "immune", "complex", "partially", "dissociated", "reassociated", "subsequently", "detected"], "section": [6, 8], "subsection": [106, 127], "group": [528, 659], "subgroup": [6728, 8261, 6748], "labels": [6, 8, 115, 136, 665, 796, 7526, 9059, 7546]}
{"id": "5990121", "title": ["-", "bridged", "-", "dihydropyridines", "medicament"], "abstract": ["present", "invention", "relates", "-", "bridged", "-", "dihydropyridines", "case", "general", "formula", "meaning", "description", "process", "preparation", "medicament", "selective", "potassium", "channel", "modulators", "treatment", "central", "nervous", "system"], "section": [2], "subsection": [58], "group": [277], "subgroup": [3643, 3647], "labels": [2, 67, 414, 4441, 4445]}
{"id": "5990137", "title": ["method", "inhibiting", "nadph", "oxidase"], "abstract": ["instant", "method", "employ", "pharmaceutical", "composition", "comprising", "aromatic", "azines", "imines", "formula", "selectively", "inhibit", "inflammation", "preventing", "oxidating", "burst", "phagocytic", "leukocyte", "caused", "nadph", "oxidase"], "section": [0], "subsection": [12], "group": [68], "subgroup": [839], "labels": [0, 21, 205, 1637]}
{"id": "5990638", "title": ["synchronizing", "method", "communication"], "abstract": ["cnc", "device", "servoamplifiers", "connected", "manner", "daisy-chain", "position", "servo", "motor", "detected", "pulse", "coder", "read", "synchronization", "point", "time", "circumstance", "synchronizing", "signal", "command", "read", "position", "propagated", "cnc", "device", "servoamplifiers", "transmission", "line", "propagation", "delay", "generated", "synchronization", "achieved", "correcting", "propagation", "delay", "time", "position", "servo", "motor", "detected", "point", "time"], "section": [6], "subsection": [110], "group": [551], "subgroup": [6994, 6992], "labels": [6, 119, 688, 7792, 7790]}
{"id": "5990751", "title": ["method", "apparatus", "improving", "power", "transfer", "efficiency", "amplifier", "system"], "abstract": ["linear", "amplifier", "output", "signal", "proportional", "input", "signal", "differential", "voltage", "control", "unit", "track", "output", "signal", "voltage", "control", "output", "pulse", "width", "modulators", "drive", "linear", "amplifier", "differential", "voltage", "control", "unit", "control", "output", "positive", "pulse", "width", "modulator", "fixed", "predetermined", "accordance", "input", "output", "signal", "positive", "negative", "pulse", "width", "modulators", "driven", "positive", "negative", "high", "voltage", "direct", "current", "power", "supply"], "section": [7], "subsection": [122], "group": [626], "subgroup": [7786], "labels": [7, 131, 763, 8584]}
{"id": "5991169", "title": ["arc", "welding", "power", "supply"], "abstract": ["dual", "stage", "power", "supply", "creating", "welding", "current", "arc", "welding", "gap", "power", "supply", "comprising", "input", "inverter", "stage", "full", "wave", "rectified", "voltage", "source", "output", "capacitor", "output", "chopper", "stage", "connected", "output", "capacitor", "chopper", "including", "output", "lead", "connected", "arc", "welding", "gap", "switch", "gating", "output", "current", "inverter", "stage", "controlled", "rate", "lead", "arc", "welding", "gap", "output", "inductor", "lead", "switch", "arc", "welding", "gap", "free", "wheeling", "diode", "lead", "switch", "output", "inductor"], "section": [8, 7, 1], "subsection": [26, 121, 125], "group": [619, 124, 655], "subgroup": [7718, 1687, 7716, 8092], "labels": [8, 7, 1, 35, 130, 134, 756, 261, 792, 8516, 2485, 8514, 8890]}
{"id": "5991610", "title": ["memory", "structure", "broadcast", "receiver", "providing", "traffic", "geographic", "information"], "abstract": ["invention", "relates", "broadcast", "receiver", "comprising", "control", "circuit", "applying", "encoded", "message", "derived", "broadcast", "signal", "storage", "device", "receiving", "control", "data", "derived", "encoded", "message", "storage", "device", "forming", "message", "control", "data", "form", "suitable", "display", "device", "speech", "synthesizer", "circuit", "order", "accelerate", "access", "control", "data", "reading", "device", "reading", "data", "external", "storage", "device", "storage", "device", "coupled", "control", "circuit", "storage", "device", "intended", "store", "region-specific", "control", "data", "storage", "device", "intended", "store", "traffic-specific", "control", "data"], "section": [6, 7], "subsection": [123, 113], "group": [573, 634], "subgroup": [7871, 7870, 7177], "labels": [6, 7, 132, 122, 710, 771, 8669, 8668, 7975]}
{"id": "5991706", "title": ["electronic", "measuring", "apparatus"], "abstract": ["electronic", "measuring", "apparatus", "plurality", "measuring", "mode", "plurality", "measuring", "mode", "selectively", "set", "perform", "operation", "electronic", "measuring", "apparatus", "includes", "plurality", "operational", "button", "information", "associate", "plurality", "operational", "button", "plurality", "measuring", "mode", "stored", "memory", "distinguished", "plurality", "operational", "button", "ha", "operated", "information", "stored", "memory", "associate", "distinguished", "plurality", "operational", "button", "plurality", "measuring", "mode", "searched", "operation", "unique", "plurality", "measuring", "mode", "distinguished", "plurality", "operational", "button", "performed", "electrical", "power", "supplied", "searching", "performing", "supplying", "start", "supplying", "electrical", "power", "portion", "electronic", "measuring", "apparatus", "distinguished", "plurality", "operational", "button", "ha", "manipulated", "searching", "performing", "operation", "occurs", "receiving", "electrical", "power", "finally", "stored", "information", "renewed", "memory"], "section": [6], "subsection": [106], "group": [519], "subgroup": [6598], "labels": [6, 115, 656, 7396]}
{"id": "5991731", "title": ["method", "system", "interactive", "prescription", "distribution", "prescription", "conducting", "clinical", "study"], "abstract": ["computer", "system", "method", "managing", "data", "conducting", "clinical", "study", "subject", "plurality", "participating", "geographically", "distributed", "clinical", "site", "participating", "clinical", "site", "computer", "inputting", "transmitting", "receiving", "data", "internet", "internet", "network", "server", "computer", "interfaced", "database", "host", "computer", "private", "network", "system", "communicates", "data", "internet", "determine", "patient", "eligibility", "randomization", "initial", "prescription", "adjusted", "physician", "online", "final", "prescription", "printed", "signature", "electronically", "distribution", "center", "study", "data", "maintained", "database", "host", "computer", "firewall", "provided", "internet", "server", "computer"], "section": [6], "subsection": [118, 111], "group": [558, 590, 564], "subgroup": [7327, 7039, 7096], "labels": [6, 127, 120, 695, 727, 701, 8125, 7837, 7894]}
{"id": "5991757", "title": ["method", "system", "searching", "array", "array"], "abstract": ["data", "processing", "system", "includes", "processor", "data", "storage", "array", "including", "record", "value-ordered", "entry", "find", "entry", "matching", "search", "number", "record", "searched", "set", "equal", "record", "assigned", "set", "set", "set", "includes", "record", "smallest", "power", "equal", "greater", "response", "determination", "search", "precedes", "record", "set", "binary", "search", "set", "record", "performed", "identify", "record", "including", "matching", "entry", "entry", "record", "set", "match", "search", "record", "set", "identified", "search", "entry", "record", "set", "selected", "record", "identified", "entry", "matching", "search", "equal", "equal", "reset", "equal", "number", "record", "set", "step", "repeated", "record", "matching", "entry", "identified", "identification", "search", "entry", "retrieved", "identified", "record", "content", "entry", "processed", "processor"], "section": [6, 8], "subsection": [127, 111], "group": [558, 659], "subgroup": [7062, 8319], "labels": [6, 8, 136, 120, 695, 796, 7860, 9117]}
{"id": "5991788", "title": ["method", "configuring", "fpga", "large", "ffts", "vector", "rotation", "computation"], "abstract": ["method", "replication", "distributed", "arithmetic", "logic", "circuit", "recursive", "interpolation", "reduced", "angular", "increment", "sine", "cosine", "sum", "constant", "logic", "look-up", "table", "permit", "computation", "vector", "rotation", "large", "ffts", "unitary", "field", "programmable", "gate", "array", "chip", "required", "off-chip", "memory", "storing", "constant"], "section": [6], "subsection": [111], "group": [558], "subgroup": [7038], "labels": [6, 120, 695, 7836]}
{"id": "5992290", "title": ["aircraft", "interface", "device", "crossover", "cable", "kit"], "abstract": ["digital", "interface", "device", "conveys", "signal", "aircraft", "data", "bus", "wingtip", "weapon", "station", "interface", "provided", "coupling", "-", "aircraft", "instrumentation", "subsystem", "internal", "aisi", "input", "output", "connector", "interface", "coupled", "secondary", "armament", "bus", "crossover", "cable", "interconnects", "wingtip", "weapon", "station", "secondary", "armament", "bus", "digital", "data", "processing", "module", "coupled", "interface", "programmed", "convey", "signal", "aircraft", "data", "system", "coupled", "-", "aisi", "input", "output", "connector", "wingtip", "weapon", "station", "processing", "module", "monitor", "signal", "received", "input", "output", "connector", "extract", "signal", "addressed", "predetermined", "address", "module", "transmits", "reformatted", "signal", "wingtip", "weapon", "station", "minimum", "wiring", "change", "interface", "easily", "convert", "aircraft", "designed", "nose-mounted", "act", "pod", "act", "pod", "mounted", "wingtip", "station", "benefit", "processing", "module", "plug", "existing", "input", "output", "connector", "substitution", "nose-mounted", "act", "pod"], "section": [5], "subsection": [104], "group": [512], "subgroup": [6538], "labels": [5, 113, 649, 7336]}
{"id": "5992431", "title": ["device", "treating", "substrate", "fluid", "container"], "abstract": ["device", "treating", "substrate", "includes", "fluid", "container", "substrate", "contained", "treatment", "nozzle", "system", "connected", "sidewall", "bottom", "fluid", "container", "includes", "plurality", "nozzle", "introducing", "fluid", "fluid", "container"], "section": [8, 7, 1], "subsection": [22, 120, 127, 15], "group": [607, 103, 88, 659], "subgroup": [1207, 8126, 7546, 1199, 1375], "labels": [8, 7, 1, 31, 129, 136, 24, 744, 240, 225, 796, 2005, 8924, 8344, 1997, 2173]}
{"id": "5993101", "title": ["shaft", "coupling", "shaft", "coupling", "structure", "image", "forming", "apparatus"], "abstract": ["invention", "directed", "shaft", "coupling", "coupling", "shaft", "shaft", "shaft", "coupling", "includes", "outer", "ring", "encasing", "end", "shaft", "end", "shaft", "pin", "provided", "outer", "ring", "pin", "extending", "direction", "pin", "provided", "outer", "ring", "pin", "extending", "direction", "substantially", "orthogonal", "direction", "shaft", "pin", "set", "end", "shaft", "movable", "pin", "shaft", "pin", "set", "end", "shaft", "displaceable", "pin"], "section": [6, 8, 5], "subsection": [94, 127, 108], "group": [543, 660, 449], "subgroup": [8350, 6910, 5780, 5811], "labels": [6, 8, 5, 103, 136, 117, 680, 797, 586, 9148, 7708, 6578, 6609]}
{"id": "5993552", "title": ["processing", "apparatus"], "abstract": ["processing", "apparatus", "comprises", "resist", "coating", "machine", "coating", "resist", "surface", "substrate", "resist", "removing", "machine", "removing", "unnecessary", "resist", "stuck", "peripheral", "portion", "substrate", "carried", "resist", "coating", "machine", "transport", "arm", "transporting", "substrate", "resist", "coating", "machine", "resist", "removing", "machine", "resist", "removing", "machine", "comprises", "substrate", "table", "substrate", "brought", "transport", "arm", "nozzle", "spraying", "solvent", "peripheral", "portion", "remove", "unnecessary", "resist", "stuck", "peripheral", "portion", "substrate", "substrate", "table", "discharge", "machine", "discharging", "solvent", "dissolve", "remove", "unnecessary", "resist", "dissolved", "removed", "resist", "exhaust", "machine", "exhausting", "atmosphere", "substrate", "table", "downward"], "section": [6, 7], "subsection": [120, 108], "group": [607, 542], "subgroup": [6906, 7546], "labels": [6, 7, 129, 117, 744, 679, 7704, 8344]}
{"id": "5993645", "title": ["catalyst", "cracking", "oil", "feedstock", "contaminated", "metal"], "abstract": ["calcined", "cracking", "catalyst", "comprising", "zeolite", "crystal", "inorganic", "oxide", "matrix", "le", "na", "expressed", "cracking", "catalyst", "characterized", "exhibiting", "spectrum", "peak", "cm", "-", "treated", "pyridine", "analyzed", "ftir", "process", "manufacturing", "fcc", "catalyst", "characterized", "high", "tolerance", "contaminated", "metal", "comprises", "providing", "fluid", "cracking", "catalyst", "microspheres", "zeolite", "inorganic", "oxide", "matrix", "analyzing", "weight", "al", "analyzing", "le", "wt", "na", "impregnating", "catalyst", "solution", "phosphate", "phosphite", "salt", "amount", "microspheres", "analyze", "weight", "calcining", "microspheres", "absence", "steam", "temperature", "degree", "degree", "recovering", "product", "characterized", "exhibiting", "spectrum", "peak", "cm", "-", "intensity", "ratio", "peak", "cm", "-", "peak", "cm", "-", "greater", "treated", "pyridine", "analyzed", "ftir"], "section": [2, 1], "subsection": [61, 15], "group": [302, 88], "subgroup": [4189, 1209, 1216], "labels": [2, 1, 70, 24, 439, 225, 4987, 2007, 2014]}
{"id": "5993696", "title": ["electrically", "conductive", "thermoplastic", "elastomeric", "composition"], "abstract": ["invention", "comprises", "thermoplastic", "elastomer", "blend", "composed", "-", "thermoplastic", "elastomer", "component", "chosen", "styrene", "block", "copolymer", "type", "a-b-a", "stand", "polystyrene", "block", "stand", "soft", "elastic", "polymer", "block", "blend", "olefin", "homopolymer", "olefin", "copolymer", "thermoplastic", "crosslinked", "elastomer", "-", "inherently", "electrically", "conductive", "polymer", "component", "comprising", "polyaniline", "derivative", "ha", "doped", "protonic", "acid"], "section": [2, 7], "subsection": [120, 59], "group": [600, 290], "subgroup": [7369, 3991, 3964], "labels": [2, 7, 129, 68, 737, 427, 8167, 4789, 4762]}
{"id": "5993700", "title": ["aggregrates", "substituted", "helicene", "compound", "show", "enhanced", "optical", "rotatory", "power", "nonlinear", "optical", "response", "thereof"], "abstract": ["invention", "aggregate", "compound", "capable", "forming", "helical", "structure", "aggregate", "capable", "achieving", "specific", "rotation", "degree", "plane", "polarized", "light", "wavelength", "nm"], "section": [6, 2], "subsection": [58, 107], "group": [276, 538], "subgroup": [3553, 3567, 3499, 6846], "labels": [6, 2, 67, 116, 413, 675, 4351, 4365, 4297, 7644]}
{"id": "5993703", "title": ["process", "producing", "steel", "casting", "ladle", "monolithic", "refractory", "lining"], "abstract": ["wall", "bottom", "steel", "casting", "handling", "ladle", "provided", "time", "refractory", "monolithic", "lining", "lining", "lower", "area", "wall", "damaged", "intermediate", "repair", "bottom", "process", "wall", "bottom", "lined", "hose-like", "inflatable", "sealing", "body", "secured", "bottom", "part", "template", "beginning", "introduce", "casting", "mass", "wall", "area", "inflated", "seal", "template", "height", "corresponds", "desired", "thickness", "bottom", "casting", "mass", "lower", "wall", "area", "sufficiently", "set", "sealing", "body", "deflated", "removed", "refractory", "casting", "mass", "introduced", "bottom", "area", "desired", "height", "process", "suitable", "steel", "casting", "handling", "ladle", "similar", "metallurgical", "vessel"], "section": [1], "subsection": [25], "group": [116], "subgroup": [1539], "labels": [1, 34, 253, 2337]}
{"id": "5994055", "title": ["hiv", "trans-activator", "tat", "binding", "activation", "ctd", "phosphorylation"], "abstract": ["present", "invention", "relates", "method", "inhibiting", "tat", "trans-activation", "cell", "method", "assaying", "inhibitor", "tat", "trans-activation"], "section": [2, 0], "subsection": [63, 58, 12], "group": [319, 282, 68], "subgroup": [843, 4365, 3713], "labels": [2, 0, 72, 67, 21, 456, 419, 205, 1641, 5163, 4511]}
{"id": "5994118", "title": ["dna", "encoding", "phage", "resistance", "protein"], "abstract": ["protein", "amino", "acid", "gene", "isolated", "natural", "plasmid", "lactococcus", "lactis", "introduced", "dairy", "starter", "culture", "protein", "confers", "strong", "resistance", "bacteriophage", "infection"], "section": [2, 0], "subsection": [3, 63, 58], "group": [17, 319, 27, 282], "subgroup": [4348, 244, 308, 3713], "labels": [2, 0, 12, 72, 67, 154, 456, 164, 419, 5146, 1042, 1106, 4511]}
{"id": "5994199", "title": ["method", "fabricating", "semiconductor", "device", "soi", "substrate"], "abstract": ["semiconductor", "device", "includes", "plurality", "single", "crystal", "semiconductor", "island", "layer", "formed", "semiconductor", "substrate", "insulating", "layer", "intervened", "therebetween", "single", "crystal", "semiconductor", "island", "layer", "isolated", "insulating", "layer", "forming", "single", "crystal", "semiconductor", "island", "layer", "single", "crystal", "semiconductor", "layer", "formed", "selectively", "removed", "insulating", "layer", "insulating", "layer", "buried", "adjacent", "single", "crystal", "semiconductor", "island", "layer", "insulating", "layer", "formed", "entire", "surface", "inclusive", "single", "crystal", "semiconductor", "island", "layer", "surface", "portion", "insulating", "layer", "removed", "etching", "process", "polishing", "process", "non-element", "region", "buried", "insulating", "layer", "single", "crystal", "semiconductor", "island", "layer", "completely", "isolated", "substrate-related", "capacitance", "wiring", "region", "resistive", "part", "reduced"], "section": [7], "subsection": [120], "group": [607], "subgroup": [7546], "labels": [7, 129, 744, 8344]}
{"id": "5994422", "title": ["hot-curing", "rubber", "foam", "high", "structural", "strength"], "abstract": ["hot-curing", "foamable", "reactive", "composition", "based", "natural", "synthetic", "rubber", "olefinic", "double", "bond", "vulcanizing", "agent", "blowing", "agent", "high", "percentage", "content", "sulfur", "give", "foamed", "rubber", "composition", "exhibiting", "high", "structural", "strength", "high", "volume", "expansion", "composition", "suitable", "multifunctional", "filling", "material", "hollow", "structure", "hollow", "profile", "vehicle", "machine", "construction", "time", "perform", "sealing", "function", "damp", "acoustic", "vibration", "stiffen", "hollow", "structure", "considerable", "extent"], "section": [2, 1], "subsection": [41, 60, 59], "group": [202, 298, 288], "subgroup": [2519, 4160, 3936, 4155, 3881], "labels": [2, 1, 50, 69, 68, 339, 435, 425, 3317, 4958, 4734, 4953, 4679]}
{"id": "5995438", "title": ["synchronous", "semiconductor", "memory", "device"], "abstract": ["synchronous", "dynamic", "ram", "capable", "segmentally", "precharging", "memory", "bank", "sdram", "memory", "bank", "divided", "multiple", "memory", "block", "memory", "block", "internally", "ha", "row", "access", "circuitry", "performs", "independent", "precharging", "operation", "access", "memory", "bank", "cooperative", "externally", "precharge", "operation", "separately", "applied", "memory", "block", "allowing", "utilization", "row", "cache", "block", "sdram", "includes", "control", "device", "generating", "dedicated", "precharge", "signal", "memory", "block", "precharge", "signal", "memory", "bank", "dedicated", "precharge", "signal", "independently", "precharges", "memory", "block", "access", "operation", "executed", "memory", "block", "dedicated", "precharge", "signal", "succeeding", "activate", "signal", "activating", "memory", "block", "overlapped", "timing", "precharge", "sequence", "implanted", "succeeding", "activate", "signal", "data", "access", "time", "shortened"], "section": [6], "subsection": [116], "group": [588], "subgroup": [7320], "labels": [6, 125, 725, 8118]}
{"id": "5995535", "title": ["rapid", "time", "frequency", "acquistion", "spread", "spectrum", "waveform", "ambiguity", "transform"], "abstract": ["present", "invention", "method", "synchronizing", "digital", "receiver", "digital", "transmitter", "frequency", "time", "ambiguity", "transformation", "ambiguity", "transform", "combine", "time", "correlation", "spectrum", "synchronization", "integrated", "two-dimensional", "transform", "process", "ambiguity", "transform", "includes", "step", "multiplying", "reference", "sequence", "received", "signal", "create", "product", "signal", "calculating", "magnitude", "spectrum", "product", "signal", "determining", "peak", "product", "signal", "multiple", "iteration", "ambiguity", "transform", "time", "frequency", "shift", "digital", "receiver", "synchronized", "digital", "transmitter", "method", "present", "invention", "implemented", "digital", "signal", "processor", "dsp"], "section": [7], "subsection": [123], "group": [637], "subgroup": [7916, 7902], "labels": [7, 132, 774, 8714, 8700]}
{"id": "5995778", "title": ["apparatus", "method", "detecting", "toner", "density", "liquid", "developer"], "abstract": ["order", "detect", "toner", "density", "liquid", "developer", "accurately", "lowering", "influence", "ion", "liquid", "developer", "toner", "density", "detecting", "apparatus", "detects", "toner", "density", "liquid", "developer", "obtained", "mixing", "charged", "toner", "particle", "carrier", "solution", "electrode", "opposed", "liquid", "developer", "therebetween", "connected", "dc", "power", "source", "apply", "electrical", "field", "liquid", "developer", "toner", "density", "detecting", "apparatus", "includes", "fourth", "electrode", "opposed", "direction", "orthogonal", "approximately", "direction", "electrode", "opposed", "connected", "power", "source", "apply", "electrical", "field", "electrode", "divided", "plural", "sub-electrodes", "toner", "density", "detecting", "apparatus", "includes", "circuit", "detecting", "current", "sub-electrodes"], "section": [6], "subsection": [106, 108], "group": [543, 528], "subgroup": [6910, 6742], "labels": [6, 115, 117, 680, 665, 7708, 7540]}
================================================
FILE: data/Train_sample.json
================================================
{"id": "3930316", "title": ["sighting", "firearm"], "abstract": ["rear", "sight", "firearm", "ha", "peephole", "device", "formed", "hollow", "tube", "end", "closed", "peephole", "peephole", "ha", "central", "orifice", "orifice", "peephole", "rear", "side", "ha", "larger", "diameter", "orifice", "peephole", "front", "sight", "side", "peephole", "pivotally", "mounted", "cooperates", "elastic", "member", "hold", "peephole", "tube-opening", "tube-closing", "position", "embodiment", "peephole", "provided", "end", "tube"], "section": [5], "subsection": [104], "group": [512], "subgroup": [6535], "labels": [5, 113, 649, 7333]}
{"id": "3930329", "title": ["bait", "molding", "device"], "abstract": ["bait", "molding", "device", "forming", "securing", "moldable", "bait", "material", "bread", "dough", "fishhook", "mold", "formed", "cup", "shaped", "mold", "section", "secured", "pliers-like", "device", "opening", "closing", "mold", "section", "mold", "elongate", "configuration", "accommodate", "entire", "fishhook", "moldable", "bait", "material", "surrounding", "fishhook", "mold", "section", "mold", "section", "includes", "groove", "edge", "mold", "permit", "fishing", "line", "attached", "hook", "pa", "mold", "closed"], "section": [0], "subsection": [0], "group": [7], "subgroup": [155], "labels": [0, 9, 144, 953]}
{"id": "3930333", "title": ["coupling", "member", "toy", "vehicle", "drive", "system"], "abstract": ["coupling", "member", "toy", "vehicle", "drive", "system", "employed", "play", "situation", "coupling", "member", "generally", "comprised", "exaggerated", "triangularly-shaped", "portion", "funnel-shaped", "portion", "exaggerated", "triangularly-shaped", "portion", "toy", "vehicle", "driven", "forward", "backward", "complete", "u-turn", "disengaged", "drive", "chain", "drive", "system", "funnel-shaped", "portion", "ensures", "toy", "vehicle", "engaged", "driven", "chain", "child", "desire", "drive", "toy", "vehicle", "forward", "direction"], "section": [0], "subsection": [14], "group": [82], "subgroup": [1090, 1086], "labels": [0, 23, 219, 1888, 1884]}
{"id": "3930351", "title": ["method", "apparatus", "transferring", "yarn", "package", "doffed", "textile", "machine", "container"], "abstract": ["present", "invention", "relates", "method", "apparatus", "transferring", "yarn", "package", "doffed", "textile", "machine", "provided", "conveyer", "belt", "disposed", "longitudinal", "direction", "thereof", "container", "yarn", "package", "carried", "end", "conveyer", "dropped", "container", "positioned", "receiving", "position", "end", "conveyer", "dropping", "distance", "end", "portion", "carrying", "surface", "conveyer", "surface", "receiving", "yarn", "package", "container", "maintained", "substantially", "predetermined", "distance", "larger", "width", "package", "smaller", "width", "package"], "section": [8, 1], "subsection": [127, 46], "group": [235, 659, 240], "subgroup": [8245, 2945, 3140, 3119], "labels": [8, 1, 136, 55, 372, 796, 377, 9043, 3743, 3938, 3917]}
{"id": "3930440", "title": ["device", "conveying", "rolled", "food"], "abstract": ["device", "conveying", "transferring", "rolled", "food", "semi-finished", "material", "chain", "procedural", "step", "step", "comb-shaped", "cradle", "secured", "stage", "processing", "device", "travelling", "comb-shaped", "cradle", "pa", "fixed", "cradle", "upwardly", "material", "fixed", "cradle", "moved", "travelling", "cradle", "move", "fixed", "cradle", "stage", "pa", "fixed", "cradle", "downwardly", "semi-finished", "material", "put", "fixed", "cradle", "stage"], "section": [0], "subsection": [1], "group": [12], "subgroup": [215], "labels": [0, 10, 149, 1013]}
{"id": "3930463", "title": ["vapor", "deposition", "apparatus", "including", "three-compartment", "evaporator"], "abstract": ["evaporation", "metal", "production", "alloy", "deposition", "component", "vapour", "phase", "carried", "controllably", "heated", "source", "comprising", "melting", "compartment", "operation", "metal", "melted", "mixing", "compartment", "constriction", "passage", "melting", "mixing", "compartment", "minimise", "back", "mixing", "molten", "metal", "evaporation", "compartment", "supply", "metal", "mixing", "compartment", "evaporation", "compartment", "surface", "molten", "metal", "heating", "preferably", "electron", "beam", "heating"], "section": [2], "subsection": [68], "group": [334], "subgroup": [4548], "labels": [2, 77, 471, 5346]}
{"id": "3930582", "title": ["system", "testing", "paper", "money"], "abstract": ["test", "genuineness", "condition", "dollar", "bill", "substantially", "identical", "paper", "thickness", "gauge", "positioned", "path", "paper", "determine", "deviation", "thickness", "passing", "specimen", "predetermined", "thickness", "reference", "specimen", "scanned", "concurrently", "therewith", "measured", "deviation", "fed", "processor", "count", "positive", "negative", "deviation", "multiplicity", "incremental", "period", "determines", "nature", "irregularity", "count", "deviation", "sign", "gauge", "measuring", "thickness", "parallel", "track", "system", "discriminate", "irregularity", "gap", "overlapping", "adhesive", "tape", "dog-eared", "corner"], "section": [6], "subsection": [112], "group": [568], "subgroup": [7139], "labels": [6, 121, 705, 7937]}
{"id": "3930737", "title": ["stud", "assembly"], "abstract": ["stud", "assembly", "produced", "holding", "fixed", "position", "head", "portion", "gripping", "surface", "extending", "base", "deformable", "washer", "extended", "base", "stud", "member", "provided", "receptacle", "end", "portion", "positioned", "respect", "base", "head", "interengaging", "cooperating", "surface", "receptacle", "base", "aligned", "provide", "locking", "aperture", "receiving", "washer", "finally", "washer", "deformed", "extends", "locking", "aperture", "locking", "stud", "member", "head", "forming", "unitary", "stud", "assembly"], "section": [8, 1], "subsection": [26, 127], "group": [660, 125], "subgroup": [1688, 8350], "labels": [8, 1, 35, 136, 797, 262, 2486, 9148]}
{"id": "3930764", "title": ["air", "tool", "overspeed", "shutoff", "device"], "abstract": ["overspeed", "shutoff", "device", "rotary", "pneumatic", "tool", "disclosed", "device", "operable", "shut", "air", "supply", "motor", "failure", "governor", "function", "properly", "preventing", "overspeeding", "motor", "device", "includes", "valve", "closing", "plate", "positioned", "path", "air", "flow", "pneumatic", "motor", "upstream", "inlet", "port", "passage", "air", "motor", "normal", "operation", "tool", "valve", "plate", "rotates", "motor", "drive", "shaft", "retained", "position", "spaced", "air", "inlet", "port", "locking", "mechanism", "engaging", "drive", "shaft", "tool", "prevent", "axial", "movement", "therealong", "plate", "locking", "device", "comprises", "cantilever", "mounted", "spring", "wire", "engagement", "groove", "drive", "shaft", "centrifugally", "responsive", "weight", "operably", "connected", "disengage", "wire", "groove", "response", "attainment", "predetermined", "rotary", "speed", "failure", "main", "governor", "tool", "consequent", "acceleration", "motor", "predetermined", "speed", "wire", "disengaged", "shaft", "groove", "air", "pressure", "drop", "valve", "inlet", "port", "closure", "plate", "move", "cover", "inlet", "port", "stopping", "flow", "air", "motor"], "section": [8, 5], "subsection": [127, 88], "group": [416, 660, 415], "subgroup": [5270, 8340, 5280], "labels": [8, 5, 136, 97, 553, 797, 552, 6068, 9138, 6078]}
{"id": "3930775", "title": ["testing", "correcting", "metering", "accuracy", "multihole", "spinnerets"], "abstract": ["method", "apparatus", "off-line", "testing", "correcting", "metering", "accuracy", "split", "multihole", "spinneret", "fed", "single", "metered", "stream", "determining", "end", "end", "variation", "flow
gitextract_iyvd7aib/
├── .github/
│ └── FUNDING.yml
├── .gitignore
├── .travis.yml
├── HARNN/
│ ├── test_harnn.py
│ ├── text_harnn.py
│ ├── train_harnn.py
│ └── visualization.py
├── LICENSE
├── README.md
├── Usage.md
├── data/
│ ├── Test_sample.json
│ ├── Train_sample.json
│ └── Validation_sample.json
└── utils/
├── checkmate.py
├── data_helpers.py
└── param_parser.py
SYMBOL INDEX (34 symbols across 7 files)
FILE: HARNN/test_harnn.py
function create_input_data (line 28) | def create_input_data(data: dict):
function test_harnn (line 33) | def test_harnn():
FILE: HARNN/text_harnn.py
class TextHARNN (line 7) | class TextHARNN(object):
method __init__ (line 10) | def __init__(
FILE: HARNN/train_harnn.py
function create_input_data (line 25) | def create_input_data(data: dict):
function train_harnn (line 30) | def train_harnn():
FILE: HARNN/visualization.py
function create_input_data (line 25) | def create_input_data(data: dict):
function normalization (line 30) | def normalization(visual_list, visual_len, epsilon=1e-12):
function create_visual_file (line 42) | def create_visual_file(input_x, visual_list: list, seq_len):
function visualize (line 59) | def visualize():
FILE: utils/checkmate.py
class BestCheckpointSaver (line 8) | class BestCheckpointSaver(object):
method __init__ (line 17) | def __init__(self, save_dir, num_to_keep=1, maximize=True, saver=None):
method handle (line 44) | def handle(self, value, sess, global_step):
method _save_best_checkpoints_file (line 87) | def _save_best_checkpoints_file(self, updated_best_checkpoints):
method _remove_outdated_checkpoint_files (line 91) | def _remove_outdated_checkpoint_files(self, worst_checkpoint):
method _update_internal_saver_state (line 96) | def _update_internal_saver_state(self, best_checkpoint_list):
method _load_best_checkpoints_file (line 103) | def _load_best_checkpoints_file(self):
method _sort (line 108) | def _sort(self, best_checkpoints):
function get_best_checkpoint (line 118) | def get_best_checkpoint(best_checkpoint_dir, select_maximum_value=True):
FILE: utils/data_helpers.py
function _option (line 18) | def _option(pattern):
function logger_fn (line 40) | def logger_fn(name, input_file, level=logging.INFO):
function tab_printer (line 71) | def tab_printer(args, logger):
function get_out_dir (line 87) | def get_out_dir(option, logger):
function get_model_name (line 112) | def get_model_name():
function create_prediction_file (line 127) | def create_prediction_file(output_file, data_id, true_labels, predict_la...
function get_onehot_label_threshold (line 155) | def get_onehot_label_threshold(scores, threshold=0.5):
function get_onehot_label_topk (line 182) | def get_onehot_label_topk(scores, top_num=1):
function get_label_threshold (line 203) | def get_label_threshold(scores, threshold=0.5):
function get_label_topk (line 236) | def get_label_topk(scores, top_num=1):
function create_metadata_file (line 261) | def create_metadata_file(word2vec_file, output_file):
function load_word2vec_matrix (line 287) | def load_word2vec_matrix(word2vec_file):
function load_data_and_labels (line 319) | def load_data_and_labels(args, input_file, word2idx: dict):
function batch_iter (line 387) | def batch_iter(data, batch_size, num_epochs, shuffle=True):
FILE: utils/param_parser.py
function parameter_parser (line 4) | def parameter_parser():
Condensed preview — 16 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (498K chars).
[
{
"path": ".github/FUNDING.yml",
"chars": 860,
"preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
},
{
"path": ".gitignore",
"chars": 1554,
"preview": "### Compiled source ###\n*.com\n*.class\n*.dll\n*.exe\n*.o\n*.so\n\n### Packages ###\n# it's better to unpack these files and com"
},
{
"path": ".travis.yml",
"chars": 224,
"preview": "language: python\n\nmatrix:\n include:\n - python: 3.6\n\ninstall:\n - pip install -r requirements.txt\n - pip install cov"
},
{
"path": "HARNN/test_harnn.py",
"chars": 8920,
"preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport os\nimport sys\nimport time\nimport logging\nimport numpy as np\n\nsys."
},
{
"path": "HARNN/text_harnn.py",
"chars": 15132,
"preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport tensorflow as tf\n\n\nclass TextHARNN(object):\n \"\"\"A HARNN for te"
},
{
"path": "HARNN/train_harnn.py",
"chars": 13771,
"preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport os\nimport sys\nimport time\nimport logging\n\nsys.path.append('../')\n"
},
{
"path": "HARNN/visualization.py",
"chars": 6246,
"preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport sys\nimport time\nimport logging\n\nsys.path.append('../')\nlogging.ge"
},
{
"path": "LICENSE",
"chars": 11357,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 7608,
"preview": "# Hierarchical Multi-Label Text Classification\n\n[:\n \"\""
},
{
"path": "utils/data_helpers.py",
"chars": 14205,
"preview": "# -*- coding:utf-8 -*-\n__author__ = 'Randolph'\n\nimport os\nimport time\nimport heapq\nimport gensim\nimport logging\nimport j"
},
{
"path": "utils/param_parser.py",
"chars": 4095,
"preview": "import argparse\n\n\ndef parameter_parser():\n \"\"\"\n A method to parse up command line parameters.\n The default hype"
}
]
About this extraction
This page contains the full source code of the RandolphVI/Hierarchical-Multi-Label-Text-Classification GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 16 files (427.8 KB), approximately 139.5k tokens, and a symbol index with 34 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.