# Hierarchical Character Tagger for Short Text Spelling Error Correction

Mengyi Gao
eBay Inc.
<EMAIL_ADDRESS>
&Canran Xu 11footnotemark: 1
eBay Inc.
<EMAIL_ADDRESS>
&Peng Shi 11footnotemark: 1
eBay Inc.
<EMAIL_ADDRESS>Equal Contribution

###### Abstract

State-of-the-art approaches to spelling error correction problem include
Transformer-based Seq2Seq models, which require large training sets and suffer
from slow inference time; and sequence labeling models based on Transformer
encoders like BERT, which involve token-level label space and therefore a
large pre-defined vocabulary dictionary. In this paper we present a
Hierarchical Character Tagger model, or HCTagger, for short text spelling
error correction. We use a pre-trained language model at the character level
as a text encoder, and then predict character-level edits to transform the
original text into its error-free form with a much smaller label space. For
decoding, we propose a hierarchical multi-task approach to alleviate the issue
of long-tail label distribution without introducing extra model parameters.
Experiments on two public misspelling correction datasets demonstrate that
HCTagger is an accurate and much faster approach than many existing models.

##  1 Introduction

A spelling corrector is an important and universal tool for a wide range of
text-related applications, such as search engines, machine translation,
optical character recognition, medical records, text processors and essay
scoring. Although spelling error correction is a long-studied problem, it
remains a challenging task because words can be misspelled in a variety of
forms, including in-word errors, cross-word errors, non-word errors and real-
word errors, depending on the subtle contextual information.

Figure 1: Original and aggregated edit label counts. The upper plot shows
original fine-grained edit label counts, which are heavily skewed. The lower
plot of aggregated coarse-grained edit label counts has much less skewness.

In this paper, we focus on solving the spelling correction problem in user-
generated short text, such as queries in search engines or tweets on social
media, which has three unique properties compared to long essays. First,
search queries or tweets are often short and lack context. Second, most short
text contains pure spelling errors and almost no grammatical errors. Third,
instant spell checkers used in search engines or social medias have strict
latency requirements.

In general, popular approaches to spelling correction make use of parallel
corpora in which the source sentence contains spelling errors and the target
sentence is error-free. Recently, the Transformer-based sequence-to-sequence
(Seq2Seq) model Vaswani et al. (2017) has gradually proven to be effective on
spelling correction problems. Unlike neural machine translation, spelling
errors tend to occur locally for a few characters while the rest of the text
is correct. To cope with this situation, Zhao et al. propose a scheme to
incorporate a copy mechanism in Seq2Seq. The success of this type of Seq2Seq
model depends on large scale annotated datasets, which are often generated by
constructing text noise from clean text in previous studies. Moreover, this
approach suffers from slower inference time and lack of interpretability.

Another class of approaches is based on sequence labeling. Instead of
generating the output sequence in an autoregressive fashion, PIE Awasthi et
al. (2019) and GECToR Omelianchuk et al. (2020) predicts token-level edit
operations in one of {Keep, Delete, Replace, Append} by leveraging pre-trained
Transformer encoders, such as BERT Devlin et al. (2019). Such models can
generate the outputs for all tokens in parallel, and therefore significantly
reduces the latency of sequential decoding as in Seq2Seq models while
achieving comparable accuracy. However, the approaches in both papers predict
edit operations at token level. It can be expected that the Replace and Append
operations are associated with a huge pre-defined vocabulary dictionary. For
real-life usages it is infeasible to enumerate all correctly spelled words in
the label space.

Figure 2: Overall architecture of the model. The text encoder is a character-
level language model, followed by a bi-directional LSTM. The edit operations
predicted by the feedforward neural network are used to formulate the
corrected text. During training, the output of the feedforward neural network
is used to construct the hierarchical loss function with two explicit terms.

To address the aforementioned shortcomings, considering the unique properties
of short text misspelling correction, in this paper, we propose a new model
called Hierarchical Character Tagger, or HCTagger for short, which uses a pre-
trained language model at the character level as a text encoder, and then
predicts character-level edits. It is motivated by the straightforward
observation that spelling errors usually occur at character level. For the
misspelling-correction pair of shies $\rightarrow$ shoes, its character-level
edit labels would be [s: Keep, h: Keep, i: Replace with o, e: Keep, s: Keep],
which is represented in a much smaller label space compared to [shies: Replace
with shoes] at token level. While most spelling errors occur within 1-edit
distance for each token, for broader coverage we also include character
sequence edit operations like Replace with oa.

Furthermore, the distribution of edit labels is long-tailed. As shown in
Figure 1, Keep and Delete are more frequent than labels of Replace/Append with
certain character(s). If these labels are treated as equivalent, the overall
accuracy of the model will be constrained by the unevenness of the label
distribution. Therefore, for decoding, we aggregate original fine-grained edit
labels into four coarse-grained labels [Keep, Delete, Append, Replace]. We
propose a hierarchical multi-task approach to learn both the fine-grained and
coarse-grained edit labels at the same time without introducing any extra
model parameters.

Through extensive experiments on two public datasets, we demonstrate that our
proposed HCTagger effectively improves the performance and latency of short
text spelling correction.

##  2 Approach

We describe our model HCTagger in this section.

###  2.1 Problem Formulation

Without lack of universality of language types, for an input text sequence
with spelling error, $S=[c_{1},\dots,c_{n}]$, our goal is to get the correct
spelling of the corresponding text, denoted as $T=[d_{1},\dots,d_{m}]$, where
$c_{i}$ and $d_{i}$ are character level input and output. Note that the
sequence lengths $n$ and $m$ are not necessarily equal.

To map the source sequence $S$ to target $T$, a corresponding edit operation
sequence $O=[o_{1},\dots,o_{n}]$ is applied. Note that $O$ has the same
sequence length as $S$. Each edit operation, $o_{i}$, falls into one of the
following four categories:

Keep

The current character remains unchanged. This means that the current character
is not misspelled.

Delete

The current character is deleted.

Append

Append a sequence of characters of length greater than or equal to one after
the current character. Each distinct appended sequence is treated as an
independent tag type.

Replace

Replaces the current character with a number of characters of length greater
than or equal to 1. Similar to Append, each distinct appended sequence is
treated as an independent tag type.

Note that there could be more than one possible edit operation sequences to
transform from source $S$ to target $T$. We use Python function
SequenceMatcher in module difflib to do obtain the unique edit operation label
sequence $O$. The idea of SequenceMatcher is to find the longest contiguous
matching subsequence. This does not necessarily yield minimal edit sequences,
but does tend to yield matches that "look right" to humans. For more
information, refer to the doc
111https://docs.python.org/3/library/difflib.html.

Thus, we eventually transform spelling correction into a sequential labeling
problem, i.e., for a given input $S=[c_{1},\dots,c_{n}]$, predict the edit
operation $o_{i}$ for each character $c_{i}$. As a concrete example, to map a
misspelled input text cassueldress to its correction casual dress, 3 edit
operations are required, namely (1) deleting the 4th character s, (2)
replacing the 6th character e with a, and (3) appending a space after the 7th
character l, while keeping other characters unchanged.

###  2.2 Model

Our proposed model, HCTagger, consists of two components. First, we encode the
text by pre-training a character-level language model. Second, the
representation obtained by the language model is encoded by a bi-directional
LSTM, which is then fed to a decoder. This decoder is hierarchical: it decodes
simultaneously four coarse-grained labels [Keep, Delete, Append, Replace] and
all the fine-grained tags (such as Append with a or Replace with eo), which
could be of potentially up to thousands types. The architecture of the model
is shown in Figure 2.

# Iteration | Short Text | # Token-level Errors | # Character-level Errors
---|---|---|---
Original | fashien industrie | 2 | 3
1 | fashion industry | 0 | 0
Table 1: An illustrative example of iterative inference.

Character-level Language Model The character-level language model we use is
the pretrained Flair Akbik et al. (2018), which has been widely shown to be
effective for word-level sequence labeling tasks. Specifically, Flair consists
of a character-level embedding layer and a (possibly bi-directional) LSTM
layer. The model predicts the next character by the preceding or succeeding
character inputs. The authors argue that it can capture semantic differences
in morphological similarities, as well as contextual information for
polysemous words. Moreover, character-level models better handle rare and
misspelled words as well as model subword structures such as prefixes and
endings.

Though pre-training a character-level language model, in the original paper
Flair focuses on word-level sequence labeling task (e.g., NER). Specifically,
to obtain word-level embeddings from character-level language model, Flair
uses the output hidden state after the last character in each word as the
representation of the whole word. However, in our scenario, we use the
embedding of current character to predict its own edit operation, regardless
of which word it belongs to, even if it is a space or punctuation.

In addition, when using Flair as the text encoder, we found that fine-tuning
Flair’s language model parameters along with the sequence labeling task
generally perform better than without fine-tuning. Therefore, fine-tuning
Flair is our default setting whenever possible.

Hierarchical Multi-Task In a training set of finite size, the original fine-
grained edit labels (a certain character being appended or replaced with some
characters) form a long-tail distribution, as shown in Figure 1. This makes
some relatively rare spelling errors more difficult to be corrected.

For decoding, we feed the hidden states of the bidirectional LSTM into a layer
of feedforward neural network whose output dimension is the size of label
types. For character $c_{i}$, the probability of original fine-grained label
type $k$ is $P(k|c_{i})$. To alleviate the issue of long-tail distribution for
$k$, we propose to aggregate the probabilities for four coarse-grained edit
labels, denoted as $P(v|c_{i})$, with
$v\in{\rm\\{\textit{Keep},\textit{Delete},\textit{Replace},\textit{Append}\\}}$,
which are presumably more balanced than the fine-grained labels. To achieve
this, we use the rule of sum of probability: as all possible fine-grained
Append (Replace) operations are mutually exclusive, the sum of their
probabilities should equal the coarse-grained probability of Append (Replace).
Formally,

$P(A(R)|c_{i})=\sum_{k\in A(R)_{\subset}}P(k|c_{i}),$ (1)

where $A_{\subset}$ and $R_{\subset}$ are the subsets consisting of fine-
grained Append and Replace operations, correspondingly.

Denote the logits for original fine-grained tag type $k$ as $f_{k}$, and
logits for aggregated coarse-grained tag type $v$ as $l_{v}$. Then the
probability of label type $k$ is $P(k|c_{i})={\rm softmax}(f_{k})$. Similarly
we have $P(v|c_{i})={\rm softmax}(l_{v})$. Therefore, Equation 1 can be
derived as:

$\frac{\exp{(l_{A(R)})}}{\sum_{m\in\\{K,D,A,R\\}}\exp{(l_{m})}}=\sum_{k\in
A(R)_{\subset}}\frac{\exp{(f_{k})}}{\sum_{j}\exp{(f_{j})}},$ (2)

where $K,D,A$ and $R$ are the short forms for Keep, Delete, Append and
Replace, accordingly.

Dataset | # Train | # Dev | # Test | % Error Rate | # Label Types
---|---|---|---|---|---
Twitter | 31,172 | 4,000 | 4,000 | 100 | 66
Webis | 44,772 | 5,000 | 5,000 | 17 | 112
Table 2: Basic statistics of the datasets.

As a result, we obtain the coarse-grained logits $l_{v}$ by solving Equation
2:

$l_{v}=\left\\{\begin{array}[]{ll}f_{k}&{k=\textit{Keep}}\\\
f_{k}&{k=\textit{Delete}}\\\ \log\sum_{k\in A_{\subset}}\exp{(f_{k})}&{k\in
A_{\subset}}\\\ \log\sum_{k\in R_{\subset}}\exp{(f_{k})}&{k\in R_{\subset}}\\\
\end{array}\right.$ (3)

Finally, HCTagger is trained by using the following multi-task loss associated
with predicting edit $o_{i}$ at each character $c_{i}$:

$\displaystyle\mathcal{L}$ $\displaystyle=\mathcal{L}_{\rm
fine}+\mathcal{L}_{\rm coarse}$ $\displaystyle=-\sum_{i}\log
P(f_{k}^{(i)}|c_{i})-\sum_{i}\log P(l_{v}^{(i)}|c_{i}).$

Notice that, in contrast to traditional multi-task learning, with the relation
between $l_{v}$ and $f_{k}$ in Equation 3, the coarse-grained loss function we
introduce as an auxiliary task does not contain extra model parameters. The
advantage of this design is that both fine-grained and coarse-grained loss
functions can reach the optimum at the same time without additional efforts to
tune the parameters to balance the two terms.

Inference Some previous studies Awasthi et al. (2019); Omelianchuk et al.
(2020) on Grammar Error Correction (GEC) have shown that a well-established
approach for inference is iterative: use the modified result obtained by the
model in the current round as input for next round’s prediction, and repeat
the process several times. These studies find that due to the dependency among
grammatical errors (tense, pronoun, subject-verb, preposition, plurals), the
performance of model predictions can be steadily improved by multiple
iterations. However, iterative inference is confronted with a trade-off
between speed and accuracy.

As spelling errors impose a strong notion of locality and have weaker
dependency on each other than grammatical errors, the iterative correction
process is less necessary. For example, in the example shown in Table 1, the 2
token-level typos, fashien and industrie, are independent of each other. To
this end, the two errors can be corrected simultaneously through a single run
in our model. Indeed, from our experiments, we noticed that having more than
one round of inference iteration only marginally improves the accuracy in our
task. Therefore, we report the results for HCTagger with only one inference
iteration in all experiments.

##  3 Experiments

In this section, we describe the experiments performed on two public datasets
for HCTagger. Meanwhile, we compare it with several state-of-the-art
baselines.

###  3.1 Datasets

We conduct experiments on the following two short text datasets:

Twitter Dataset

is proposed in Aramaki (2010), which includes 39,172 samples in their spell-
error form and error-free form. We adopt the same train / dev / test split as
Ribeiro et al. (2018) and Awasthi et al. (2019).

Webis Dataset

is introduced in Hagen et al. (2017), which consists of 54,772 queries from
AOL search logs. In contrast to the Twitter Dataset, the error rate of this
dataset is only $\sim$17%. Since the original dataset does not provide the
train / dev / test split, we randomly sample 5000 queries as the dev and test
sets, respectively, and use the remaining data as the training set.

The basic statistics of these two datasets and the corresponding number of
label types (calculated from training data) are listed in the Table 2.

###  3.2 Baselines and Implementation Details

The following baseline models are used for the comparison experiments:

Aspell

Atkinson (2018) works at word level. It uses a combination of metaphone
phonetic algorithm, Ispell’s near miss strategy and a weighted edit distance
metric to score candidate words.

Seq2Seq-LSTM

is the standard LSTM-based Seq2Seq architecture.

Seq2Seq-Transformer

Vaswani et al. (2017) is the self-attention based Seq2Seq model.

Local Sequence Transduction

Ribeiro et al. (2018) treats spelling correction as a character-level local
sequence transduction task by first predicting insertion slots, followed by a
sequence labeling task for output tokens or a special operation Delete.

BERT-PIE

Awasthi et al. (2019) or Parallel Iterative Edit model, is a sequence labeling
method which uses BERT as its text encoder.

BERT-Neuspell

Jayanthi et al. (2020) is provided by the Neuspell toolkit. It regards
spelling correction as a token-level sequence labeling task, where the output
for each token is its error-free form. We finetune the BERT model on the Webis
dataset.

All the models are implemented in PyTorch Paszke et al. (2019), and trained
with a single Tesla V100 GPU. For HCTagger, we use the English Flair
embeddings pretrained on the 1-billion word corpus Chelba et al. (2014), which
are publicly available222https://github.com/flairNLP/flair. We tune the number
of LSTM hidden states $\in\\{512,1024\\}$, training batch size
$\in\\{8,16,32\\}$, learning rate $\in\\{1e^{-2},1e^{-3}\\}$, and optimizer
type $\in${Adam Kingma and Ba (2015), LAMB You et al. (2020)}. In addition,
both the encoder and decoder of Transformer has two self-attention layers.

Model | Twitter Dataset Accuracy | Webis Dataset Accuracy
---|---|---
Aspell | 30.1 † | 65.8
Seq2Seq (LSTM) | 52.2 ∗ | 83.5
Seq2Seq (Transformer) |  67.6 ∗ | 83.7
Ribeiro et al. (2018) | 64.6 † | -
BERT-PIE Awasthi et al. (2019) | 67.0 ∗ | -
BERT-Neuspell Jayanthi et al. (2020) | - | 84.0
HCTagger | 67.2 | 86.8
Table 3: Performance on Twitter and Webis dataset. Results with $\dagger$ are from Ribeiro et al. (2018); results with $*$ are from Awasthi et al. (2019).  Model | Words per Second
---|---
Seq2Seq (Transformer) | 36.62
BERT-PIE Awasthi et al. (2019) | 80.43
HCTagger | 251.20
Table 4: Inference speed on Twitter dataset. Model | Query per Second
---|---
Seq2Seq (LSTM) | 83.33
Seq2Seq (Transformer) | 40.00
BERT-Neuspell Jayanthi et al. (2020) | 62.50
HCTagger | 250.00
Table 5: Inference speed on Webis dataset.

###  3.3 Results

For the Twitter dataset, to align with previous publications, we report the
accuracy in the test set to compare the performances among all models. As
shown in Table 3, HCTagger improves accuracy over all the models except
Transformer. In particular, it is important to note that although the
pretrained language model (Flair) we use is lightweight compared to BERT, our
model still outperforms BERT-PIE.

Table 3 also reports the performance on the Webis dataset. Our HCTagger
exceeds all other models. Transformer model doesn’t perform well on this
dataset, probably because the number of misspelled queries is small (17%) and
is not enough to train Transformer well. In contrast, our model makes more
effective use of small training set.

Meanwhile, we also compare the inference speed of the most accurate models, as
shown in Table 4 and Table 5. Indeed, the inference speed of HCTagger is much
faster than Seq2Seq (LSTM, Transformer), BERT-PIE Awasthi et al. (2019), and
BERT-Neuspell Jayanthi et al. (2020).

###  3.4 Ablation Study

To understand the importance of each part of the model, we conduct an ablation
study on the Twitter dataset, and report the accuracy in Table 6.

We first take away the pre-trained language model. At this point, the
character-level embedding is randomly initialized and the rest of the model is
left unchanged. The accuracy decreases by 1.9%.

Subsequently, we preserve the language model but remove the coarse-grained
loss term of the Hierarchical Multi-Task. In this case, the accuracy decreases
by 0.7%.

| Accuracy
---|---
Full Model | 67.2
\- w/o Pretrained LM | 65.3
\- w/o Hierarchical Multi-Task | 66.5
Table 6: Ablation study on Twitter dataset.

##  4 Related Works

Hasan et al. use character-based statistical machine translation to correct
user queries in the e-commerce domain. They extract training data from query
refinement logs, and evaluate the results on an internal dataset.

Grammar Error Correction (GEC) is an extensively researched NLP task. This
task contains grammar errors, including spelling, punctuation, grammatical,
and word choice errors. PIE Awasthi et al. (2019) and GECToR Omelianchuk et
al. (2020) are the state-of-the-art models that predict token-level edit
operations {Keep, Delete, Replace, Insert} by leveraging pre-trained
Transformer encoders like BERT. However, their models are not specifically
designed for correcting spelling errors, which most often occur at character
level. They rely on a small ($\sim$1k) pre-defined token-level Replace and
Insert dictionary. Including all correctly-spelled tokens in the dictionary
will make the label space too large.

Transformer based Seq2Seq models Kiyono et al. (2019); Zhao et al. (2019)
prove to be successful on grammar error corrections, but heavily depends on
synthetically generated error datasets. Character based Seq2Seq models Xie et
al. (2016) are also explored. Such model architectures involve a separate
autoregressive decoder and attention module, which makes the inference time
much slower. In particular for spelling error correction task, where the
misspelling and correction only differ by one or more characters, Seq2Seq
models seem too heavy.

Neuspell Jayanthi et al. (2020) is a spelling correction toolkit, which
implements a wide range of models like SC-Elmo-LSTM and BERT. They regard
spelling correction as a token-level sequence labeling task, where the output
for each token is its error-free form. For each word in the input text
sequence, models are trained to output a probability distribution over a
finite vocabulary. Besides the aforementioned excessive label space problem at
token-level, another shortcoming of this toolkit is that it assumes the
misspelled and correction sentences have exactly the same number of tokens.
Therefore, cross-word errors such as power point $\rightarrow$ powerpoint or
babydoll $\rightarrow$ baby doll cannot be handled properly.

Ribeiro et al. treat spelling correction as a character-level local sequence
transduction task by first predicting insertion slots in the input using
learned insertion patterns, and then using a sequence labeling task to output
tokens or a special token Delete. They maintain a dictionary to keep track of
the insertion context. For example, letter a is inserted frequently after
letter s. While our pre-trained language model layer implicitly encodes such
insertion context without the need of keeping a dictionary.

##  5 Conclusions

We presented the Hierarchical Character Tagger to correct user-generated short
text misspellings. HCTagger predicts character-level edits, which has smaller
label space than token-level edits. Pre-trained character-level language model
embedding that we use is lightweight and much faster than BERT-like text
encoders in many other state-of-the-art models, while achieving similar or
even higher accuracy for short text spelling error correction task. Moreover,
our novel Hierarchical Multi-Task decoding approach can be extended to any
scenario that contains a hierarchical long-tail distributed label space.

## Acknowledgements

We would like to thank Zhe Wu, Julie Netzloff, Xiaoyuan Wu, Hua Yang, Vivian
Tian and Scott Gaffney for their support.

## References

  * Akbik et al. (2018) Alan Akbik, Duncan Blythe, and Roland Vollgraf. 2018.  Contextual string embeddings for sequence labeling.  In _Proceedings of the 27th International Conference on Computational Linguistics, COLING 2018, Santa Fe, New Mexico, USA, August 20-26, 2018_ , pages 1638–1649. Association for Computational Linguistics.
  * Aramaki (2010) Eiji Aramaki. 2010.  Typo corpus.
  * Atkinson (2018) Kevin Atkinson. 2018.  Gnu aspell.
  * Awasthi et al. (2019) Abhijeet Awasthi, Sunita Sarawagi, Rasna Goyal, Sabyasachi Ghosh, and Vihari Piratla. 2019.  Parallel iterative edit models for local sequence transduction.  In _Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing, EMNLP-IJCNLP 2019, Hong Kong, China, November 3-7, 2019_ , pages 4259–4269. Association for Computational Linguistics.
  * Chelba et al. (2014) Ciprian Chelba, Tomás Mikolov, Mike Schuster, Qi Ge, Thorsten Brants, Phillipp Koehn, and Tony Robinson. 2014.  One billion word benchmark for measuring progress in statistical language modeling.  In _INTERSPEECH 2014, 15th Annual Conference of the International Speech Communication Association, Singapore, September 14-18, 2014_ , pages 2635–2639. ISCA.
  * Devlin et al. (2019) Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019.  BERT: pre-training of deep bidirectional transformers for language understanding.  In _Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, NAACL-HLT 2019, Minneapolis, MN, USA, June 2-7, 2019, Volume 1 (Long and Short Papers)_ , pages 4171–4186. Association for Computational Linguistics.
  * Hagen et al. (2017) Matthias Hagen, Martin Potthast, Marcel Gohsen, Anja Rathgeber, and Benno Stein. 2017.  A large-scale query spelling correction corpus.  In _Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval, Shinjuku, Tokyo, Japan, August 7-11, 2017_ , pages 1261–1264. ACM.
  * Hasan et al. (2015) Sasa Hasan, Carmen Heger, and Saab Mansour. 2015.  Spelling correction of user search queries through statistical machine translation.  In _Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, EMNLP 2015, Lisbon, Portugal, September 17-21, 2015_ , pages 451–460. The Association for Computational Linguistics.
  * Jayanthi et al. (2020) Sai Muralidhar Jayanthi, Danish Pruthi, and Graham Neubig. 2020.  Neuspell: A neural spelling correction toolkit.  In _Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations, EMNLP 2020 - Demos, Online, November 16-20, 2020_ , pages 158–164. Association for Computational Linguistics.
  * Kingma and Ba (2015) Diederik P. Kingma and Jimmy Ba. 2015.  Adam: A method for stochastic optimization.  In _3rd International Conference on Learning Representations, ICLR 2015, San Diego, CA, USA, May 7-9, 2015, Conference Track Proceedings_.
  * Kiyono et al. (2019) Shun Kiyono, Jun Suzuki, Masato Mita, Tomoya Mizumoto, and Kentaro Inui. 2019.  An empirical study of incorporating pseudo data into grammatical error correction.  In _Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing, EMNLP-IJCNLP 2019, Hong Kong, China, November 3-7, 2019_ , pages 1236–1242. Association for Computational Linguistics.
  * Omelianchuk et al. (2020) Kostiantyn Omelianchuk, Vitaliy Atrasevych, Artem N. Chernodub, and Oleksandr Skurzhanskyi. 2020.  Gector - grammatical error correction: Tag, not rewrite.  In _Proceedings of the Fifteenth Workshop on Innovative Use of NLP for Building Educational Applications, BEA@ACL 2020, Online, July 10, 2020_ , pages 163–170. Association for Computational Linguistics.
  * Paszke et al. (2019) Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, Alban Desmaison, Andreas Köpf, Edward Yang, Zachary DeVito, Martin Raison, Alykhan Tejani, Sasank Chilamkurthy, Benoit Steiner, Lu Fang, Junjie Bai, and Soumith Chintala. 2019.  Pytorch: An imperative style, high-performance deep learning library.  In _Advances in Neural Information Processing Systems 32: Annual Conference on Neural Information Processing Systems 2019, NeurIPS 2019, December 8-14, 2019, Vancouver, BC, Canada_ , pages 8024–8035.
  * Ribeiro et al. (2018) Joana Ribeiro, Shashi Narayan, Shay B. Cohen, and Xavier Carreras. 2018.  Local string transduction as sequence labeling.  In _Proceedings of the 27th International Conference on Computational Linguistics, COLING 2018, Santa Fe, New Mexico, USA, August 20-26, 2018_ , pages 1360–1371. Association for Computational Linguistics.
  * Vaswani et al. (2017) Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017.  Attention is all you need.  In _Advances in Neural Information Processing Systems 30: Annual Conference on Neural Information Processing Systems 2017, December 4-9, 2017, Long Beach, CA, USA_ , pages 5998–6008.
  * Xie et al. (2016) Ziang Xie, Anand Avati, Naveen Arivazhagan, Dan Jurafsky, and Andrew Y. Ng. 2016\.  Neural language correction with character-based attention.  _CoRR_ , abs/1603.09727.
  * You et al. (2020) Yang You, Jing Li, Sashank J. Reddi, Jonathan Hseu, Sanjiv Kumar, Srinadh Bhojanapalli, Xiaodan Song, James Demmel, Kurt Keutzer, and Cho-Jui Hsieh. 2020\.  Large batch optimization for deep learning: Training BERT in 76 minutes.  In _8th International Conference on Learning Representations, ICLR 2020, Addis Ababa, Ethiopia, April 26-30, 2020_. OpenReview.net.
  * Zhao et al. (2019) Wei Zhao, Liang Wang, Kewei Shen, Ruoyu Jia, and Jingming Liu. 2019.  Improving grammatical error correction via pre-training a copy-augmented architecture with unlabeled data.  In _Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, NAACL-HLT 2019, Minneapolis, MN, USA, June 2-7, 2019, Volume 1 (Long and Short Papers)_ , pages 156–165. Association for Computational Linguistics.


#  On rectifying slant helices in Euclidean 3-space 11footnotetext: This
research has been supported by Ahi Evran University: PYO-EGF.4001.15.001

Bülent Altunkaya111Correspondence<EMAIL_ADDRESS>Department
of Mathematics, Faculty of Education, University of Ahi Evran  Ferdağ Kahraman
Aksoyak Department of Mathematics, Faculty of Education, University of Ahi
Evran  Levent Kula Department of Mathematics, Faculty of Arts and Sciences,
University of Ahi Evran  Cahit Aytekin Department of Mathematics, Faculty of
Education, University of Ahi Evran

###### Abstract

In this paper, we study the position vector of rectifying slant helices in
$E^{3}$. First, we have found the general equations of the curvature and the
torsion of rectifying slant helices. After that, we have constructed a second
order linear differential equation and by solving the equation, we have
obtained a family of rectifying slant helices which lie on cones.

Key Words: Rectifying Curve, Curvature, Torsion, Slant Helix, Cone.

2010 AMS Subject Classification : 53A04, 53A05

##  1 Introduction

In classical differential geometry; a general helix in the Euclidean 3-space,
is a curve which makes a constant angle with a fixed direction.

The notion of rectifying curve has been introduced by Chen [2, 3]. Chen
showed, under which conditions, the position vector of a unit speed curve lies
in its rectifying plane. He also stated the importance of rectifying curves in
Physics.

On the other hand, the notion of slant helix was introduced by Izuyama and
Takeuchi [4, 5]. They showed, under which conditions, a unit speed curve is a
slant helix. Later, Ahmet T. Ali published a paper in which position vectors
of some slant helices were shown [1]. In [6, 7], L. Kula, et al studied the
spherical images under both tangent and binormal indicatrices of slant helices
and obtained that the spherical images of a slant helix are spherical helices.

The papers mentioned above led us to study on the notion of rectifying slant
helices. We began with finding the equations of curvature and torsion of a
rectifying slant helix. After that, we constructed a second order linear
differential equation to determine position vector of a rectifying slant
helix. By solving this equation for some special cases, we obtained a unit
speed family of rectifying slant helices which lie on cones.

##  2 Preliminaries

The Euclidean 3-space $E^{3}$ is the real vector space $R^{3}$ with the metric

$g=d{x}_{1}^{2}+d{x}_{2}^{2}+d{x}_{3}^{2},$

where $(x_{1},x_{2},x_{3})$ is a rectangular coordinate system of $E^{3}$.

A curve $\alpha:I\subset R\longrightarrow{E}^{3}$ is said to be parametrized
by the arclength parameter s, if
$g\left({\alpha}^{{}^{\prime}}\left(s\right),{\alpha}^{{}^{\prime}}\left(s\right)\right)=1$,
where ${\alpha}^{\prime}\left(s\right)=d\alpha/ds$. Then, we call $\alpha$
unit speed. Consider unit-speed space curve $\alpha$ has at least four
continuous derivatives, then $\alpha$ has a natural frame called Frenet Frame
with the equations below,

$\begin{matrix}\begin{matrix}{t}^{{}^{\prime}}=\kappa n\\\
{n}^{{}^{\prime}}=-\kappa t+\tau b\\\ {b}^{{}^{\prime}}=-\tau
n,\end{matrix}\end{matrix}$

where $\kappa$ is the curvature, $\tau$ is the torsion, and
$\left\\{t,n,b\right\\}$ is the Frenet Frame of the curve $\alpha$. We denote
unit tangent vector field with $t$, unit principal normal vector field with n,
and the unit binormal vector field with $b$. It is possible in general, that
${t}^{{}^{\prime}}(s)=0$ for some $s\in I$; however, we assume that this never
happens.

######  Definition 1.

A curve is called a slant helix if its principal normal vector field makes a
constant angle with a fixed line in space.

######  Theorem 1.

A unit speed curve $\alpha$ is a slant helix if and only if the geodesic
curvature of the spherical image of the principal normal indicatrix of
$\alpha$ which is

$\sigma(s)=\left(\frac{{\kappa}^{2}}{{{\left({\kappa}^{2}+{\tau}^{2}\right)}}^{{3}/{2}}}{\left(\frac{\tau}{\kappa}\right)}^{{}^{\prime}}\right)\left(s\right)$

is constant [4, 5].

A unit speed curve $\alpha$ is called rectifying curve when the position
vector of it always lie in its rectifying plane. So, for a rectifying curve we
can write

$\alpha\left(s\right)=\lambda\left(s\right)t\left(s\right)+\mu\left(s\right)b\left(s\right).$

######  Theorem 2.

A unit speed curve $\alpha$ is congruent to a rectifying curve if and only if

$\frac{\tau(s)}{\kappa(s)}={c}_{1}s+{c}_{2}$

for some constants $c_{1}$ and $c_{2}$, with $c_{1}\neq 0$ [2, 3].

##  3 Rectifying Slant Helices in $E^{3}$

If the position vector of a unit speed slant helix always lies in its
rectifying plane we call it a rectifying slant helix. For a rectifying slant
helix we have the following theorem.

######  Theorem 3.

Let $\alpha$ be a unit speed curve in $E^{3}$. Then, $\alpha(s)$ is a
rectifying slant helix if and only if the curvature and torsion of the curve
satisfies the equations below;

$\kappa(s)=\frac{{c}_{3}}{{{\left(1+{\left({c}_{1}s+{c}_{2}\right)}^{2}\right)}}^{{3}/{2}}},\tau(s)=\frac{{c}_{3}\left({c}_{1}s+{c}_{2}\right)}{{{\left(1+{\left({c}_{1}s+{c}_{2}\right)}^{2}\right)}}^{{3}/{2}}},$
(1)

where $c_{1}\neq 0,c_{2}\in R$, $\theta\neq 0+k\pi/2,k\in Z$, and $c_{3}\in
R^{+}.$

######  Proof..

Let $\alpha$ be a unit speed rectifying slant helix in $E^{3}$, then the
equations in Theorem 1, and Theorem 2 exists. If we combine them then we have

$m=\frac{{c}_{1}}{{{\kappa\left(1+{\left({c}_{1}s+{c}_{2}\right)}^{2}\right)}}^{{3}/{2}}}.\\\
$

where $m$ is a constant. So we can write $\kappa$ as follows

$\kappa(s)=\frac{{c}_{3}}{{{\left(1+{\left({c}_{1}s+{c}_{2}\right)}^{2}\right)}}^{{3}/{2}}},$

then, from Theorem 2

$\tau(s)=\frac{{c}_{3}\left({c}_{1}s+{c}_{2}\right)}{{{\left(1+{\left({c}_{1}s+{c}_{2}\right)}^{2}\right)}}^{{3}/{2}}}.$

where $c_{3}=\left|c_{1}/m\right|$.

Conversely, it can be easily seen that, the curvature functions as mentioned
above satisfy the equations at Theorem 1 and Theorem 2. So, $\alpha$ is a
rectifying slant helix.

∎

Now, we give another Theorem by using the definitions of slant helix and
rectifying curve to determine $c_{3}$.

######  Theorem 4.

Let $\alpha$ be a unit speed rectifying slant helix whose principal normal
vector field makes a constant angle with a unit vector $u$, then the curvature
and torsion of $\alpha$ satisfy the equations below;

$\kappa(s)=\frac{\left|c_{1}\tan(\theta)\right|}{{{\left({\left({c}_{1}s+{c}_{2}\right)}^{2}+1\right)}}^{{3}/{2}}},\quad\tau(s)=\frac{\left|c_{1}\tan(\theta)\right|\left({c}_{1}s+{c}_{2}\right)}{{{\left({\left({c}_{1}s+{c}_{2}\right)}^{2}+1\right)}}^{{3}/{2}}}$

where $c_{1}\neq 0,c_{2}\in R.$

######  Proof..

Let $\alpha$ be a unit speed rectifying slant helix in $E^{3}$. Then, from the
definition of slant helix there is a unit fixed vector $u$ with

$g(n,u)=\cos(\theta),$

where $\theta\in R^{+}$. If we differentiate this equation with respect to
$s$, we have,

$g(-\kappa t+\tau b,u)=0.$

If we divide both parts of the equation with $\kappa$, we get

$g(-t+(c_{1}s+c_{2})b,u)=0,$ (2)

then,

$g(t,u)=(c_{1}s+c_{2})g(b,u).$

While $\\{t,n,b\\}$ is a orthonormal frame we can write,

$v=\lambda_{1}t+\lambda_{2}n+\lambda_{3}b,$

with $\lambda_{1}^{2}+\lambda_{2}^{2}+\lambda_{3}^{2}=+1.$ If we make the
neccessary calculations we have,

$\lambda_{1}=\mp\frac{(c_{1}s+c_{2})\sin(\theta)}{\sqrt{(c_{1}s+c_{2})^{2}+1}},\quad\lambda_{2}=\cos(\theta),\quad\lambda_{3}=\pm\frac{\sin(\theta)}{\sqrt{(c_{1}s+c_{2})^{2}+1}}.$

By differentiating (2) we have,

$\pm\frac{c_{1}\sin(\theta)}{\kappa\sqrt{(c_{1}s+c_{2})^{2}+1}}-(1+(c_{1}s+c_{2})^{2})\cos(\theta)=0.$

Therefore,

$\kappa(s)=\frac{\left|c_{1}\tan(\theta)\right|}{{{\left({\left({c}_{1}s+{c}_{2}\right)}^{2}+1\right)}}^{{3}/{2}}},$

and

$\tau(s)=\frac{\left|c_{1}\tan(\theta)\right|\left({c}_{1}s+{c}_{2}\right)}{{{\left({\left({c}_{1}s+{c}_{2}\right)}^{2}+1\right)}}^{{3}/{2}}}.$

∎

######  Theorem 5.

Let $\alpha(s)$ be a unit speed rectifying slant helix. Then, the vector $v$
satisfies the linear vector differential equation of second order as follows;

$v^{\prime\prime}(s)+\frac{({c}_{1}\tan{(\theta)})^{2}}{{{\left(1+{\left({c}_{1}s+{c}_{2}\right)}^{2}\right)}}^{2}}v(s)=0,$

where $v=\frac{n^{\prime}}{\kappa}$.

######  Proof..

Let $\alpha$ be a unit speed rectifying slant helix then we can write frenet
equations as follows,

$\begin{matrix}\begin{matrix}{t}^{{}^{\prime}}=\kappa n\\\
{n}^{{}^{\prime}}=-\kappa t+f\kappa b\\\ {b}^{{}^{\prime}}=-f\kappa
n,\end{matrix}\end{matrix}$ (3)

where $f(s)=c_{1}s+c_{2}$. If we divide second equation by $\kappa$ we have,

$\frac{n^{\prime}}{\kappa}=-t+fb.$ (4)

By differentiating (4), we have

$c_{1}b=\left(\frac{n^{\prime}}{\kappa}\right)^{\prime}+\kappa(1+f^{2})n.$ (5)

By differentiating (5) and using (3) we have

$\left(\frac{n^{\prime}}{\kappa}\right)^{\prime\prime}+\kappa(1+f^{2})n^{\prime}+\left[\left(\kappa(1+f^{2})\right)^{\prime}+c_{1}f\kappa\right]n=0,$
(6)

with the necessary calculations we easily see

$\left(\kappa(1+f^{2})\right)^{\prime}+c_{1}f\kappa=0.$

So we have (6) as follows,

$\left(\frac{n^{\prime}}{\kappa}\right)^{\prime\prime}+\kappa(1+f^{2})n^{\prime}=0.$
(7)

Let us denote $\frac{n^{\prime}}{\kappa}=v$. Then (7) becomes to

$v^{\prime\prime}+\frac{({c}_{1}\tan{(\theta)})^{2}}{{{\left(1+{\left({c}_{1}s+{c}_{2}\right)}^{2}\right)}}^{2}}v=0,$
(8)

this completes the proof. ∎

As we know every component of vector $v=(v_{1},v_{2},v_{3})$ must satisfy (8).
We can show

$\begin{matrix}\begin{matrix}&&v_{1}(s)=-\sqrt{\Bigl{(}1+{f}^{2}\left(s\right)\Bigl{)}}\sin\left[\sec(\theta)\arctan\left[f(s)\right]\right],\\\
&&v_{2}(s)=\sqrt{\Bigl{(}1+{f}^{2}\left(s\right)\Bigl{)}}\cos\left[\sec(\theta)\arctan\left[f(s)\right]\right],\\\
&&v_{3}(s)=0.\end{matrix}\end{matrix}$

We can show $v$ is a solution for (8). Therefore, we can write
$n=(n_{1},n_{2},n_{3})$ as follows,

$\begin{matrix}\begin{matrix}&&n_{1}(s)=\int\kappa(s)v_{1}(s)ds=A_{1}\left|c_{1}\right|\sin(\theta)\cos\left[\sec(\theta)\arctan\left[f(s)\right]\right],\\\
&&n_{2}(s)=\int\kappa(s)v_{2}(s)ds=A_{2}\left|c_{1}\right|\sin(\theta)\sin\left[\sec(\theta)\arctan\left[f(s)\right]\right],\\\
&&n_{3}(s)=\cos(\theta).\end{matrix}\end{matrix}$ (9)

On the other hand, Let $\alpha$ be a unit speed rectifying slant helix, whose
principal normal vector field makes a constant angle $\theta$ with $e_{3}$.
Then, for its principal normal we can write

$<n,e_{3}>=\cos(\theta).$

While $n=(n_{1},n_{2},n_{3})$ is a unit vector,
$n_{1}^{2}+n_{2}^{2}+n_{3}^{2}=1$. So,
$n_{1}^{2}+n_{2}^{2}=1-\cos^{2}(\theta)=\sin^{2}(\theta)$. Therefore $n$ can
be in the form,

$\begin{matrix}\begin{matrix}&&n_{1}(s)=\sin(\theta)\cos(h(s))\\\
&&n_{2}(s)=\sin(\theta)\sin(h(s))\\\
&&n_{3}(s)=\cos(\theta),\end{matrix}\end{matrix}$ (10)

where $h(s)$ is a differentiable function.

If we take,
$A_{1}=1/\left|c_{1}\right|,A_{2}=1/\left|c_{1}\right|,h(s)=\sec(\theta)\arctan\left[f(s)\right]$
at (9), (9) and (10) coincides. Thus, a unit speed rectifying slant helix
$\alpha$ can be in the form;

$\begin{matrix}\begin{matrix}&&\alpha_{1}(s)=\sin(\theta)\int\left(\int\kappa(s)\cos\left[\sec(\theta)\arctan\left(c_{1}s+c_{2}\right)\right]ds\right)ds,\\\
&&\alpha_{2}(s)=\sin(\theta)\int\left(\int\kappa(s)\sin\left[\sec(\theta)\arctan\left(c_{1}s+c_{2}\right)\right]ds\right)ds,\\\
&&\alpha_{3}(s)=\int\left(\int\kappa(s)\cos(\theta)ds\right)ds,\end{matrix}\end{matrix}$

where $\alpha=(\alpha_{1},\alpha_{2},\alpha_{3})$.

Therefore, we find $\alpha$ as follows.

$\begin{matrix}\begin{matrix}\alpha_{1}(s)=-\frac{\cos{(\theta)}}{c_{1}}\sqrt{1+\left(c_{1}s+c_{2}\right)^{2}}\cos{\left[\sec{(\theta)}\arctan{\left(c_{1}s+c_{2}\right)}\right]},\\\
\alpha_{2}(s)=-\frac{\cos{(\theta)}}{c_{1}}\sqrt{1+\left(c_{1}s+c_{2}\right)^{2}}\sin{\left[\sec{(\theta)}\arctan{\left(c_{1}s+c_{2}\right)}\right]},\\\
\alpha_{3}(s)=\frac{1}{c_{1}}\sqrt{1+\left(c_{1}s+c_{2}\right)^{2}}\sin{(\theta).}\end{matrix}\end{matrix}$

Now, we can write a new lemma;

######  Lemma 1.

Let $\alpha(s):I\longrightarrow R^{3}$ be a space curve with the equation
below,

$\begin{split}\alpha(s)=-\frac{\sqrt{1+\left(c_{1}s+c_{2}\right)^{2}}}{c_{1}}(&\cos(\theta)\cos\left[\sec{(\theta)}\arctan{\left(c_{1}s+c_{2}\right)}\right],\\\
&\cos(\theta)\sin\left[\sec{(\theta)}\arctan{\left(c_{1}s+c_{2}\right)}\right],\\\
&-\sin(\theta)),\end{split}$ (11)

where $\theta\neq\frac{\pi}{2}+k\pi,k\in Z$, and $c_{1}\neq 0,c_{2}\in R.$
Then, $\alpha(s)$ is a unit speed rectifying slant helix which lies on the
cone

$\tan^{2}(\theta)\left(x^{2}+y^{2}\right)=z^{2}.$ (12)

######  Proof..

With direct calculations we have $g(\alpha^{\prime},\alpha^{\prime})=1$,
$g(n,n)=1$, and the curvature functions of $\alpha$ as,

$\begin{matrix}\begin{matrix}\kappa(s)=\frac{\left|c_{1}\tan(\theta)\right|}{\left((c_{1}s+c_{2})^{2}+1\right)^{3/2}},\\\
\tau(s)=\frac{\left|c_{1}\tan(\theta)\right|(c_{1}s+c_{2})}{\left((c_{1}s+c_{2})^{2}+1\right)^{3/2}}.\end{matrix}\end{matrix}$

with,

$\frac{{\kappa}^{2}(s)}{{{\left({\kappa}^{2}(s)+{\tau}^{2}(s)\right)}}^{{3}/{2}}}{\left(\frac{\tau(s)}{\kappa(s)}\right)}^{{}^{\prime}}=\cot(\theta),$

and

$\frac{\tau(s)}{\kappa(s)}=c_{1}s+c_{2}.$

So, $\alpha$ is a unit speed spacelike rectifying slant helix. We also have

$\tan^{2}{(\theta)}\left({{\alpha}_{1}}^{2}(s)+{{\alpha}_{2}}^{2}(s)\right)-{{\alpha}_{3}}^{2}(s)=0,$

then, $\alpha$ lies on the cone above. ∎

######  Example 1.

If we take $c_{1}=1,c_{2}=0$, and $\cos(\theta)=1/3$ then,
$\tan(\theta)=2\sqrt{2}$. If we put these into (11) and (12), we have the
following equations;

$\begin{matrix}\alpha(s)=\left(-\frac{1}{3}\sqrt{s^{2}+1}\cos\left(3\arctan(s)\right),-\frac{1}{3}\sqrt{s^{2}+1}\sin\left(3\arctan(s)\right),\frac{2\sqrt{2}}{3}\sqrt{s^{2}+1}\right),\\\
\kappa(s)=\frac{2\sqrt{2}}{\left(s^{2}+1\right)^{3/2}},\tau(s)=\frac{2\sqrt{2}s}{\left(s^{2}+1\right)^{3/2}},\\\
8\left(x^{2}+y^{2}\right)=z^{2}.\end{matrix}$

Figure 1: Rectifying Slant Helix on $8\left(x^{2}+y^{2}\right)=z^{2}$

Figure 2: Tangent, Normal,and Binormal indicatrix of $\alpha$ resp.

######  Example 2.

If we take $c_{1}=1/2,c_{2}=-1/5$, and $\cos(\theta)=1/10$ then,
$\tan(\theta)=\sqrt{99}$. If we put these into (11) and (12), we have the
following equations;

$\begin{split}\beta(s)=\frac{1}{5}\sqrt{\left(\frac{s}{2}-\frac{1}{5}\right)^{2}+1}\Biggl{(}&-\cos\left(10\arctan\left(\frac{s}{2}-\frac{1}{5}\right)\right),\\\
&-\sin\left(10\arctan\left(\frac{s}{2}-\frac{1}{5}\right)\right),\\\
&\frac{3\sqrt{11}}{5}\Biggl{)},\end{split}$
$\begin{matrix}\kappa(s)=\frac{1500\sqrt{11}}{\Big{(}5s(5s-4)+104\Big{)}^{3/2}},\tau(s)=\frac{150\sqrt{11}(5s-2)}{\Big{(}5s(5s-4)+104\Big{)}^{3/2}},\\\
99\left(x^{2}+y^{2}\right)=z^{2}.\end{matrix}$

Figure 3: Rectifying Slant Helix on $99\left(x^{2}+y^{2}\right)=z^{2}$

Figure 4: Tangent, Normal,and Binormal indicatrix of $\beta$ resp.

## References

  * [1] Ali T. Ahmad, Position vectors of slant helices in Euclidean space $E^{3}$, Journal of the Egyptian Mathematical Society Volume 20, Issue 1, Pages 1-6, April 2012.
  * [2] Chen, B. Y., When does the position vector of a space curve always lie in its rectifying plane?, Amer. Math. Monthly 110, 147-152, 2003.
  * [3] Chen, B. Y., Dillen, F. Rectifying curves as centrodes and extremal curves, Bull. Inst. Math. Academia Sinica 33, No. 2, 77-90, 2005.
  * [4] Izumiya S., Takeuchi N., New special curves and developable surfaces, Turk. J. Math. 28, 153-163, 2004.
  * [5] S. Izumiya, N. Takeuchi, Generic properties of helices and Bertrand curves , J. Geom. 74, 97-109, 2002.
  * [6] Kula, L. and Yayli, Y., On slant helix and its spherical indicatrix, Applied Mathematics and Computation, 169, 600-607, 2005.
  * [7] Kula, L.; Ekmekci, N. Yaylı, Y. and ˙Ilarslan, K., Characterizations of slant helices in Euclidean 3-space, Turkish J. Math. 34, no. 2, 261–273, 2010.
  * [8] O’Neill B., Elementary Differential Geometry, Academic Press, 2006.
  * [9] Struik D. J., Lectures on Classical Differential Geometry, Dover, 1961.