# Class CosineDistance

java.lang.Object
org.apache.commons.text.similarity.CosineDistance

All Implemented Interfaces:
  `BiFunction<CharSequence, CharSequence, Double>, EditDistance<Double>, ObjectSimilarityScore<CharSequence, Double>, SimilarityScore<Double>`

public class CosineDistance extends Object implements EditDistance<Double>
Measures the cosine distance between two character sequences.

It utilizes the `CosineSimilarity` to compute the distance. Character sequences are converted into vectors through a simple tokenizer that works with a regular expression to split words in a sentence.

For further explanation about Cosine Similarity and Cosine Distance, refer to https://en.wikipedia.org/wiki/Cosine_similarity.

Since:
  1.0
See Also:
  - `CosineSimilarity`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CosineDistance()`
  Construct a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Double`
  `apply(CharSequence left, CharSequence right)`
  Compares two CharSequences.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface BiFunction

  `andThen`

- ## Constructor Details

  - ### CosineDistance

    public CosineDistance()
    Construct a new instance.

- ## Method Details

  - ### apply

    public Double apply(CharSequence left, CharSequence right)
    Description copied from interface: `SimilarityScore`
    Compares two CharSequences.
    Specified by:
      `apply` in interface `BiFunction<CharSequence, CharSequence, Double>`
    Specified by:
      `apply` in interface `ObjectSimilarityScore<CharSequence, Double>`
    Specified by:
      `apply` in interface `SimilarityScore<Double>`
    Parameters:
      `left` - the "left" or "first" input.
      `right` - the "right" or "second" input.
    Returns:
      The similarity score between two CharSequences.