2D- or 3D-Plot of neighbors

Share:

Description

2D- or 3D-Approximation of the neighborhood of a given word/sentence

Usage

1
2
3
plot_neighbors(x,n,connect.lines=0,start.lines=T,
   method="PCA",dims=3,axes=F,box=F,cex=1,alpha=0.5,
   col="black",tvectors=tvectors,breakdown=FALSE,...)

Arguments

x

a character vector of length(x) = 1 or a numeric of length=ncol(tvectors) vector with same dimensionality as LSA space

n

the number of neighbors to be computed

dims

the dimensionality of the plot; set either dims = 2 or dims = 3

method

the method to be applied; either a Principal Component Analysis (method="PCA") or a Multidimensional Scaling (method="MDS")

connect.lines

(3d plot only) the number of closest associate words each word is connected with via line. Setting connect.lines="all" will draw all connecting lines and will automatically apply alpha="shade"; it will furthermore override the start.lines argument

start.lines

(3d plot only) whether lines shall be drawn between x and all the neighbors

axes

(3d plot only) whether axes shall be included in the plot

box

(3d plot only) whether a box shall be drawn around the plot

cex

(2d Plot only) A numerical value giving the amount by which plotting text should be magnified relative to the default.

tvectors

the semantic space in which the computation is to be done (a numeric matrix where every row is a word vector)

breakdown

if TRUE, the function breakdown is applied to the input

alpha

(3d plot only) a vector of one or two numerics between 0 and 1 specifying the luminance of start.lines (first entry) and connect.lines (second entry). Specifying only one numeric will pass this value to both kinds of lines. With setting alpha="shade", the luminance of every line will be adjusted to the cosine between the two words it connects.

col

(3d plot only) a vector of one or two characters specifying the color of start.lines (first entry) and connect.lines (second entry). Specifying only one colour will pass this colour to both kinds of lines. With setting col ="rainbow", the colour of every line will be adjusted to the cosine between the two words it connects. Setting col ="rainbow" will alsp apply alpha="shade"

...

additional arguments which will be passed to plot3d (in a three-dimensional plot only)

Details

Attempts to create an image of the semantic neighborhood (based on cosine similarity) to a given word, sentence/ document, or vector. An attempt is made to depict this subpart of the LSA space in a two- or three-dimensional plot.
To achieve this, either a Principal Component Analysis (PCA) or a Multidimensional Scaling (MDS) is computed to preserve the interconnections between all the words in this neighborhod as good as possible. Therefore, it is important to note that the image created from this function is only the best two- or three-dimensional approximation to the true LSA space subpart.

For creating pretty plots showing the similarity structure within this neighborhood best, set connect.lines="all" and col="rainbow"

Value

For three-dimensional plots:see plot3d: this function is called for the side effect of drawing the plot; a vector of object IDs is returned
plot_neighbors also gives the coordinate vectors of the words in the plot as a data frame

Author(s)

Fritz G√ľnther

References

Landauer, T.K., & Dumais, S.T. (1997). A solution to Plato's problem: The Latent Semantic Analysis theory of acquisition, induction and representation of knowledge. Psychological Review, 104, 211-240.

Mardia, K.V., Kent, J.T., & Bibby, J.M. (1979). Multivariate Analysis, London: Academic Press.

See Also

cosine, neighbors, multicos, plot_wordlist, plot3d, princomp

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
data(wonderland)

## Standard Plot
plot_neighbors("cheshire",n=20,tvectors=wonderland)  

## Pretty Plot
plot_neighbors("cheshire",n=20,tvectors=wonderland,
                connect.lines="all",col="rainbow")  



plot_neighbors(compose("mad","hatter",tvectors=wonderland),
                n=20, connect.lines=2,tvectors=wonderland)